首页 / ORACLE / oracle学习 笔记(2)
oracle学习 笔记(2)
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了oracle学习 笔记(2),小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2579字,纯文字阅读大概需要4分钟。
内容图文
![oracle学习 笔记(2)](/upload/InfoBanner/zyjiaocheng/478/5c012de4cb944f2589a1e288ab1a772c.jpg)
二、序列(自动增长列)
为此问题博主也是各种搜索,挖贴子,最终也没有找到为什么Oracle没有自增列这一原因,还望有大牛看到出来指点迷津,在此谢过了。
因为在SQL Server中有会自动生成的“自动增长列”来实现主键”,很是方便,所以在换用Oracle的时候还是有点不习惯的,不过俗语说得好,不管白猫黑猫,捉到老鼠就是好猫;在Oracle中便使用序列来实现这一功能的。
1.创建序列
1 /* 2 创建序列 3 */ 4 --注意命名规范 5 CREATE SEQUENCE sequence_name 6 --指定要生成的第一个序列,对于升序,默认值为最小值;对于降序,默认值为最大值 7 [START WITH integer] 8 --用于指定序列号之接的间隔,默认值为1 , 若值为正值,则生成序列按升序排列;若为负值,则生成序列为降序排列 9 [INCREMENT BY integer] 10 --MAXVALUE:指定序列可以生成最大值; 11 --NOMAXUALUE:如果指定了NOMAXUALUE,Oracle将升序序列的最大值设为10^27,将降序序列的最大值设为-1;此为默认选项 12 [MAXVALUE integer|NOMAXUALUE] 13 --MINVALUE:指定序列的最小值,必须小于或等于START WITH值,并且必须小于MAXVALUE; 14 --NOMAXUALUE:如果指定NOMAXUALUE,Oracle将升序序列的最小值设为1,将降序序列的最小值设为-10^26;此为默认选项 15 [MINVALUE integer|NOMINUALUE] 16 --CYCLE:指定序列达到最大值或者最小值之后,将重新从头开始生成值 17 --NOCYCLE:指定序列达到最大值或者最小值之后,将不能在继续生成值 18 [NOCYCLE|CYCLE] 19 --CACHE:预先缓存分配一组序列号,并将其保留在内存中,这样可以更快的访问序列号。当缓存序列号用完时,将生成另一组序列号将其保留在缓存中 20 --NOCACHE:关闭缓存,忽略此选项默认缓存20个序列号 21 [CACHE integer|NOCACHE];
2.访问序列
1 /* 2 例 访问序列 3 */ 4 --使用NEXTVAL创建序列后第一次调用返回初始值,之后再次引用时,将使用INCREMENT BY子句来增加的值,并返回这个新值 5 INSERT INTO tableName(id,name,price) 6 VALUES(sequence_name.NEXTVAL,BigRoc,1); 7 8 --返回序列的当前值,即最后一次引用NEXTVAL时返回的值,dual是Oracle提供的一张表 只会返回一行一列记录 9 SELECT sequence_name.CURRVAL FROM dual;
3.更改序列
1 ALTER SEQUENCE sequence_name 2 3 [INCREMENT BY integer] 4 5 [MAXVALUE integer|NOMAXUALUE] 6 7 [MINVALUE integer|NOMINUALUE] 8 9 [NOCYCLE|CYCLE] 10 11 [CACHE integer|NOCACHE];
注意:不能修改序列的START WITH参数,在修改序列时应注意升序序列的最小值应小于最大值!!!
4.删除序列
1 DROP SEQUENCE sequence_name;
注意:使用序列中 在数据库迁移的时候需注意,因为迁移后表中已存在数据,如不修改起始值,便会违背主键约束,所以在创建序列时要修改序列的起始值。
每天记录一点,就能多学一点。
oracle学习 笔记(2)
标签:art 选项 str acl 错误 最大 alt 最小 color
本文系统来源:http://www.cnblogs.com/bigroc/p/BigRoc.html
内容总结
以上是互联网集市为您收集整理的oracle学习 笔记(2)全部内容,希望文章能够帮你解决oracle学习 笔记(2)所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。