Navicat for Oracle 递增序列

设置递增序列

第一部分 设置序列

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


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


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

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

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


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

[sql]  view plain  copy
 
 在CODE上查看代码片派生到我的代码片
  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这个值,让触发器自动补充。


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

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



  • 4
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值