1、创建序列
CREATE SEQUENCE T_TEST2_SEQUNCE
MINVALUE 1
MAXVALUE 999999999
START WITH 1
INCREMENT BY 1
CACHE 50
T_TEST2_SEQUNCE 序列名称
increment by 1 每次加1
cache 50 获取nextval时 oracle每次产生序列值的个数
2、显示调用序列
插入数据时 获取序列值 插入
获取序列值 T_TEST2_SEQUNCE.nextval
insert into tableName values(T_TEST2_SEQUNCE.nextval,'name',xx,xx);
查看当前序列值与下个值
select T_TEST2_SEQUNCE.currval from dual
select T_TEST2_SEQUNCE.nextval from dual
3、触发器调用序列
CREATE OR REPLACE TRIGGER T_TEST2_TRIGGER
before insert on T_TEST2
for each row
BEGIN
select T_TEST2_SEQUNCE.nextval into :new.id from dual;
END;
这样每次插入数据 序列默认自增
tips:
创建触发器报错success with compilcation error
这里是new.id没有找到对应的字段,执行时自动转为大写,需要将表格中的字段改为大写
;表示sql结束,但运行sql,需要用/来执行。/作用是让服务器开始执行前面所写的sql脚本。如下面触发器结尾需要加个/来执行
CREATE OR REPLACE TRIGGER T_TEST2_TRIGGER
before insert on T_TEST2
for each row
BEGIN
select T_TEST2_SEQUNCE.nextval into :new.id from dual;
END;/