oracle的自增長

mysql的自增長非常容易,一個 AUTO_INCREMENT

就搞定,可是oracle就不行了

下面是oracle的自增長

#創建一個表
CREATE TABLE T_TEST_DEPARTMENTS ( ID NUMBER (
10) NOT NULL, DESCRIPTION VARCHAR2 (50) NOT NULL ); #創建一個表 CREATE TABLE T_TEST_DEPARTMENTS2 ( ID NUMBER (10) NOT NULL, DESCRIPTION VARCHAR2 (50) NOT NULL ); #設置唯一的字段 ALTER TABLE T_TEST_DEPARTMENTS ADD (CONSTRAINT) dept_pk PRIMARY KEY (ID); ALTER TABLE T_TEST_DEPARTMENTS2 ADD (CONSTRAINT dept_pk PRIMARY KEY (ID)); #創建序列
CREATE SEQUENCE dept_seq; CREATE SEQUENCE dept_seq2; #觸發器版本1:非空時,才使用序列的NEXTVAL值 CREATE OR REPLACE TRIGGER dept_before_insert BEFORE INSERT ON T_TEST_DEPARTMENTS FOR EACH ROW WHEN (NEW.ID IS NULL) BEGIN SELECT dept_seq.NEXTVAL INTO :NEW.ID FROM dual ; END ; 觸發器版本2: 無視插入數據時,指定的ID CREATE OR REPLACE TRIGGER dept_before_insert2 BEFORE INSERT ON T_TEST_DEPARTMENTS2 FOR EACH ROW BEGIN SELECT dept_seq2.NEXTVAL INTO :
new.id FROM dual; END; #測試數據 INSERT INTO T_TEST_DEPARTMENTS (ID, DESCRIPTION) VALUES (19, '指定ID'); INSERT INTO T_TEST_DEPARTMENTS (DESCRIPTION) VALUES ('不指定ID'); INSERT INTO T_TEST_DEPARTMENTS2 (ID, DESCRIPTION) VALUES (19, '指定ID'); INSERT INTO T_TEST_DEPARTMENTS2 (DESCRIPTION) VALUES ('不指定ID');

 

參考轉載自:http://www.cnblogs.com/xqzt/p/4452292.html

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章