oracle中實現主鍵的自動增加

2021-04-01 00:21:16 字數 1007 閱讀 1313

實現方法1:

建立乙個最小為1,最大為nomaxvalue的乙個序列號會自動迴圈的序列

create sequence 序列名

increment by 1

start with 1

nomaxvalue 

nocycle;

當向表中插入資料時,sql語句寫法如下:

sql> insert into 表名 values(序列名.nextval,列1值,列2值, ...);

當要重用該序列號時,有兩種方法:

a. 在同乙個sql塊中重用:

sql>insert into表名(序列名.currval, 列1值,列2值...);

b. 在儲存程序中,將該值取到乙個引數中:

sql>select序列名.nextval into 引數名 from dual;

然後在重用該序列號的地方呼叫這個引數。

實現方法2:(利用觸發器)

sql> create sequence a_sequence

2  start with 1

3  increment by 1;

序列已建立。

sql> create table t (n number ,v varchar2(10));

表已建立。

sql> create or replace trigger t_trg

2  before insert or update on t

3  for each row

4  begin

5    select a_sequence.nextval into :new.n from dual;

6  end;

7  /

觸發器已建立

sql> insert into t values(111,'ok');

已建立 1 行。

sql> select *  from t;

n v---------- ----------

1 ok

ORACLE實現主鍵自增

建序列 create sequence sq public minvalue 1 maxvalue 999999 start with 1 increment by 1 建觸發器 sql create or replace trigger exam tri 2 before insert on t ...

oracle實現主鍵自增

由於oracle設定主鍵是不會自動增加的,所以必須用 序列 和 觸發器 來完成主鍵的遞增 1 建立資料表 create table t test id number 10 primary key,建立主鍵 uname varchar2 20 age number 0,10 varchar2 20 a...

Oracle實現主鍵自增

建表mshow sysuser info create table mshow sysuser info id int primary key,role id int not null,login name varchar2 50 not null,user name varchar2 20 use...