Navicat for Oracle 递增序列

设置递增序列

第一部分 设置序列

1.通过点击"其他=》序列"可以操作序列:

Navicat for Oracle 递增序列

2.点击进去后可以设计序列、新建序列、删除序列。

Navicat for Oracle 递增序列

3.同样可以通过代码增加序列,对应上面的表T_USER_INFO用户表。

  1. CREATE SEQUENCE User_Info_SEQ    
  2. minvalue 1    
  3. maxvalue 9999999999999999999    
  4. increment by 1    
  5. start with 1;   

Navicat for Oracle 递增序列

4.点击新建的序列User_Info_SEQ后可以发现具体的序列:

Navicat for Oracle 递增序列


第二部分 设置触发器
5. 然后设置对应表T_USER_INFO中字段ID的触发器,实现在向表中插入数据前自动插入自增长的序列。

[sql] view plain copy
 
 Navicat for Oracle 递增序列Navicat for Oracle 递增序列
  1. CREATE OR REPLACE TRIGGER Trigger_User      
  2. BEFORE INSERT ON T_USER_INFO      
  3.     for each row      
  4.     when(NEW.ID is NULL)    
  5.     begin      
  6.         select User_Info_Seq.Nextval into :NEW.ID from dual;      
  7.     end;    

创建成功如下图所示,注意不能缺少when(NEW.ID is NULL),因为在插入数据时会缺省ID这个值,让触发器自动补充。

Navicat for Oracle 递增序列


6.查看表T_USER_INFO结构可以查看对应的触发器:

Navicat for Oracle 递增序列

但有可能会报编译错误[Err] ORA-24344: success with compilation error。其原因是表的所有列名都需要大写,也可以手动添加“更新栏位”,否则如图虽然有增加触发器,但是更新栏位为空,所以这个插入是不成功的,插入时也不会触发主键的序列。

Navicat for Oracle 递增序列