时间:2021-07-01 10:21:17 帮助过:13人阅读
第二步:设置ID自增
第一种方式:不使用触发器
1 CREATE SEQUENCE SEQ_TID; 2 INSERT INTO ContestDB VALUES(SEQ_TID.NEXTVAL,‘B20007009‘,‘B001 ‘); 3 INSERT INTO ContestDB VALUES(SEQ_TID.NEXTVAL,‘B20007010‘,‘B003 ‘);
第二种方式:使用Trigger 触发器
1 --自定义一个序列 2 create sequence ContestDB_sequence 3 increment by 1 --每次增加几个,我这里是每次增加1 4 start with 1 --从1开始计数 5 nomaxvalue --不设置最大值 6 nocycle --一直累加,不循环 7 nocache --不建缓冲区 8 --创建一个触发器 9 CREATE TRIGGER ContestDB_trigger 10 BEFORE INSERT ON ContestDB 11 FOR EACH ROW 12 WHEN (new.TID is null) --只有在tid为空时,启动该触发器生成tid号 13 begin 14 select ContestDB_sequence.nextval into :new.TID from sys.dual; 15 end; 16 17 insert into ContestDB(TEAMNUM,MARKNUM) values(‘A20007013‘,‘A002‘); 18 19 insert into ContestDB(TEAMNUM,MARKNUM) values(‘A20007014‘,‘A003‘);
oracle数据库创建表且主键自增
标签:使用 sys prim oracle数据库 sql with null max trigger