Navicat for Oracle 递增序列
设置递增序列
第一部分 设置序列
1.通过点击"其他=》序列"可以操作序列:
2.点击进去后可以设计序列、新建序列、删除序列。
3.同样可以通过代码增加序列,对应上面的表T_USER_INFO用户表。
- CREATE SEQUENCE User_Info_SEQ
- minvalue 1
- maxvalue 9999999999999999999
- increment by 1
- start with 1;
4.点击新建的序列User_Info_SEQ后可以发现具体的序列:
第二部分 设置触发器
5. 然后设置对应表T_USER_INFO中字段ID的触发器,实现在向表中插入数据前自动插入自增长的序列。
- CREATE OR REPLACE TRIGGER Trigger_User
- BEFORE INSERT ON T_USER_INFO
- for each row
- when(NEW.ID is NULL)
- begin
- select User_Info_Seq.Nextval into :NEW.ID from dual;
- end;
创建成功如下图所示,注意不能缺少when(NEW.ID is NULL),因为在插入数据时会缺省ID这个值,让触发器自动补充。
6.查看表T_USER_INFO结构可以查看对应的触发器:
但有可能会报编译错误[Err] ORA-24344: success with compilation error。其原因是表的所有列名都需要大写,也可以手动添加“更新栏位”,否则如图虽然有增加触发器,但是更新栏位为空,所以这个插入是不成功的,插入时也不会触发主键的序列。