与MySQL自动设置主键自增不同,Oracle数据库如果想要实现在插入数据的时候可以自动插入主键ID,需要通过队列sequence实现。
一:创建自增队列
create sequence ORDER_ID_SQU//队列名
minvalue 1 //最小值
maxvalue 5000000 //最大值
start with 1 //从1开始
increment by 1 //每次自增1
cache 20; //缓存20。
二:为需要自增ID的表创建触发器,并将从队列中获取的值插入表中
CREATE OR REPLACE TRIGGER TRIGGER_ORDER //触发器名TRIGGER_ORDER
BEFORE INSERT ON T_USER_INFO //表名T_USER_INFO
for each row //为每一行
when(NEW.ID is NULL) //当新插入的数据的ID(此ID为表名的字段)
begin
select ORDER_ID_SQU.Nextval into :NEW.ID from dual; //取队列的下一个值插入表中对应的ID字段
end;