Oracle 中自動序列

2021-06-16 01:35:55 字數 1164 閱讀 2954

oracle中沒有象acces中自動編號的字段型別,所以在oracle中要想用乙個字段自動增值,還比較麻煩,在此提供給大家乙個方法,利用序列,來完成欄位的自動增加,下邊介紹一下怎麼建立序列,使用序列,和刪除序列。

1.建立序列--------------create sequence

create sequence  seq_autoid   //所起序列名叫 seq_autoid ,需要記住此序列名,以後方可呼叫

minvalue   1   //最小值從1開始 可以根據自己的需要自定義

maxvalue 9999999999999999999     //序列最大值為 999999999999999999999 可以自定義

start with 1   //從1開始 可以自定義

increment by  1   //遞增幅度為 1   可以自定義

cache 20 ;     //快取20

2. 呼叫序列,完成自動加1 ------------seq_autoid.nextval

在向表中插入、更新 資料時可以呼叫 ,由於自己實際應用中只用到了 插入時呼叫,所以在此只舉此列

eg:  insert into table1 ( f1,f2,f3,f4) select  f1,f2,f3,seq_autoid.nextval  from table2  where 條件

當然上邊這句是批量插入資料,你也可以用 values值來一條條插入。在此需說明的一點為table1.f4欄位需為數值型(number)型。這樣,你的table1中的f4欄位就是從1開始,以幅度為1來遞增的數值了,實現了自動增加的功能。當然幅度可以自己定義。

還有一點是 序列是值是唯一的,只要你一直用nextval來遞增的話,在oracle中序列號不會重複.可以用currval來查詢當前的序列值,在你nextval後,currval也會跟著變。

3.序列的刪除--------------drop sequence

當為了重置序列時,或不需要序列時,可以先刪除序列

eg: drop sequence seq_autoid;

4.用序列來修改某個欄位的值

eg:  update cse_depot set jobid=seq_autoid.nextval

以上這個例子是用當前的序列值給cse_depot的字段 jobid賦值,使jobid欄位實現自動加1功能

Oracle中自動獲取序列sequence用法

oracle中沒有自增型別的字段的,所以通常情況下需要定義乙個sequence來作為自動增長型別欄位的資料。於是記錄了一些關於oracle sequence的資料,已備查用 oracle中的序列 sequence 1 如何定義乙個序列 僅向前的數字變數 和sql中的自動編號有點像 identity ...

oracle序列 自動增加

普通使用者普通身份 create user yao identified by 654321 grant connect,resource to yao conn yao 654321 create table tp proid number primary key,proname varchar2...

Oracle中新增自動編號的序列

1.建立表t test create table t test id int address char 25 pay int 2.建立自增序列 create sequence seq t test id 建立名為zc的序列 increment by 1 自增長度為1 start with 1 從1開...