1. 程式人生 > 其它 >Oracle中實現自增列的兩種方式(序列、觸發器)

Oracle中實現自增列的兩種方式(序列、觸發器)

測試表:

CREATE TABLE UserInfo(
id NUMBER(10) NOT NULL,
username VARCHAR2(15) NOT NULL,
CONSTRAINTS PF_UserInfo PRIMARY KEY(Id)
);

方法一:顯示呼叫序列的下一個值插入:

SQL語句:

-- 建立序列
CREATE SEQUENCE Tab_UserInfo_Sequence
START WITH 1
MINVALUE 1
MAXVALUE 999999999
INCREMENT BY 1
CACHE 20;

INSERT INTO USERINFO values(Tab_UserInfo_Sequence.
nextval,'aaa'); INSERT INTO USERINFO values(Tab_UserInfo_Sequence.nextval,'bbb'); SELECT * FROM UserInfo;

結果:
在這裡插入圖片描述

方法二:序列+觸發器:

SQL語句:

CREATE SEQUENCE Tab_UserInfo_Sequence
START WITH 1
MINVALUE 1
MAXVALUE 999999999
INCREMENT BY 1
CACHE 20;

DROP TRIGGER Tig_UserInfo_Insert;
CREATE TRIGGER Tig_UserInfo_Insert
BEFORE INSERT
ON UserInfo FOR EACH ROW BEGIN SELECT Tab_UserInfo_Sequence.nextval into :new.id FROM dual; END; INSERT INTO UserInfo(username) values('zs'); INSERT INTO UserInfo(username) values('ls'); SELECT * FROM UserInfo;

結果:
在這裡插入圖片描述