码迷,mamicode.com
首页 > 数据库 > 详细

oracle的自增长

时间:2017-01-19 23:04:07      阅读:209      评论:0      收藏:0      [点我收藏+]

标签:har   指定   logs   primary   nts   esc   table   com   each   

mysql的自增长非常容易,一个auto_incritrem就搞定,可是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

 

oracle的自增长

标签:har   指定   logs   primary   nts   esc   table   com   each   

原文地址:http://www.cnblogs.com/renboqie/p/6308942.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!