经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 数据库/运维 » Oracle » 查看文章
Oracle中用序列和触发器实现ID自增
来源:cnblogs  作者:Joseph_L  时间:2019/1/30 9:33:05  对本文有异议
在设计数据库的时候,Oracle中没有类似SQL Server中系统自动分配ID作为主键的功能,这时Oracle可以通过“序列”和“触发器”来实现ID自动增加的功能。

1.创建序列Sequence

  1. create sequence seq_uid
  2.   increment by 1
  3.   start with 1
  4.   nomaxvalue
  5.   nocycle
  6.   cache 10 ;

其中:"seq_uid"表示自定义的序列名称

   "start with 1"表示序列值从1开始;

   "increment by 1"表示序列每次增加的值为1

序列的使用方法:

  1. select seq_uid.nextval ID from dual

这样就得到了序列的下一个值,将这个语句放在触发器中,就可以实现类似SQL Server中ID自增的功能。

 
2.创建触发器Trigger
  1. create trigger tri_uid before insert on [tablename] for each row when (new.[columnname] is null)
  2. begin
  3. select seq_uid.nextval into:new.[columnname] from dual;
  4. end;

其中:"tri_uid"表示自定义的触发器名称;

   "seq_uid"表示要使用的序列名称

   "[columnname]"表示要实现自增的列;

   "[tablename]"表示要实现自增的列所在的数据表

 

 

原文地址:https://www.cnblogs.com/imdeveloper/p/10334215.html
转载请注明出处,谢谢!

 

原文链接:http://www.cnblogs.com/imdeveloper/p/10334215.html

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号