数据库序列相关问题。
时间:2011-10-09
来源:互联网
数据库的序列是不是oracle特有的,如果不是都还有那些数据库有序列,创建,删除和修改的语句是什么样子的。
在线等,大侠快来帮帮忙吖。
在线等,大侠快来帮帮忙吖。
作者: asd411422 发布时间: 2011-10-09
你问的好多.序列是oracle特有.sql server称为自增列,虽然大体差不多,但也有不少差异.
创建: create ...
删除: delete ...
修改: alter ....
创建: create ...
删除: delete ...
修改: alter ....
作者: dawugui 发布时间: 2011-10-09
是的,序列(Sequence)是oracle数据库特有的,相当于sql server的IDENTITY
sql server中的IDENTITY 是可以在创建表的时候,指定:如
CREATE TABLE new_employees
(
id_num int IDENTITY(1,1), --自动增长,从1开始,每次增加1
fname varchar (20),
minit char(1),
lname varchar(30)
);
如果不想要这个序列,很简单,可以删除这个字段id_num ,但是这个序列可能会产生不连续的数字,因为可能一些中间的记录被删除,那么IDENTITY就不连续,主要看是否影响你的应用了。
这时,也可以使用set identity_insert id_num on ,启用识别插入,插入指定的数字已填补不连续的序列。
oracle的序列就比较简单一点:
1.首先创建序列,Oracle序列的语法格式为:
CREATE SEQUENCE 序列名
[INCREMENT BY n]
[START WITH n]
[{MAXVALUE/ MINVALUE n|NOMAXVALUE}]
[{CYCLE|NOCYCLE}]
[{CACHE n|NOCACHE}];
1)INCREMENT BY用于定义序列的步长,如果省略,则默认为1,如果出现负值,则代表Oracle序列的值是按照此步长递减的。
2)START WITH 定义序列的初始值(即产生的第一个值),默认为1。
3)MAXVALUE 定义序列生成器能产生的最大值。选项NOMAXVALUE是默认选项,代表没有最大值定义,这时对于递增Oracle序列,系统能够产生的最大值是10的27次方;对于递减序列,最大值是-1。
4)MINVALUE定义序列生成器能产生的最小值。选项NOMAXVALUE是默认选项,代表没有最小值定义,这时对于递减序列,系统能够产生的最小值是?10的26次方;对于递增序列,最小值是1。
5)CYCLE和NOCYCLE 表示当序列生成器的值达到限制值后是否循环。CYCLE代表循环,NOCYCLE代表不循环。如果循环,则当递增序列达到最大值时,循环到最小值;对于递减序列达到最小值时,循环到最大值。如果不循环,达到限制值后,继续产生新值就会发生错误。
6)CACHE(缓冲)定义存放序列的内存块的大小,默认为20。NOCACHE表示不对序列进行内存缓冲。对序列进行内存缓冲,可以改善序列的性能。
2.删除Oracle序列的语法是DROP SEQUENCE 序列名;
3.修改序列的语法
ALTER SEQUENCE 序列名
[INCREMENT BY n]
[{MAXVALUE/ MINVALUE n|NOMAXVALUE}]
[{CYCLE|NOCYCLE}]
[{CACHE n|NOCACHE}];
sql server中的IDENTITY 是可以在创建表的时候,指定:如
CREATE TABLE new_employees
(
id_num int IDENTITY(1,1), --自动增长,从1开始,每次增加1
fname varchar (20),
minit char(1),
lname varchar(30)
);
如果不想要这个序列,很简单,可以删除这个字段id_num ,但是这个序列可能会产生不连续的数字,因为可能一些中间的记录被删除,那么IDENTITY就不连续,主要看是否影响你的应用了。
这时,也可以使用set identity_insert id_num on ,启用识别插入,插入指定的数字已填补不连续的序列。
oracle的序列就比较简单一点:
1.首先创建序列,Oracle序列的语法格式为:
CREATE SEQUENCE 序列名
[INCREMENT BY n]
[START WITH n]
[{MAXVALUE/ MINVALUE n|NOMAXVALUE}]
[{CYCLE|NOCYCLE}]
[{CACHE n|NOCACHE}];
1)INCREMENT BY用于定义序列的步长,如果省略,则默认为1,如果出现负值,则代表Oracle序列的值是按照此步长递减的。
2)START WITH 定义序列的初始值(即产生的第一个值),默认为1。
3)MAXVALUE 定义序列生成器能产生的最大值。选项NOMAXVALUE是默认选项,代表没有最大值定义,这时对于递增Oracle序列,系统能够产生的最大值是10的27次方;对于递减序列,最大值是-1。
4)MINVALUE定义序列生成器能产生的最小值。选项NOMAXVALUE是默认选项,代表没有最小值定义,这时对于递减序列,系统能够产生的最小值是?10的26次方;对于递增序列,最小值是1。
5)CYCLE和NOCYCLE 表示当序列生成器的值达到限制值后是否循环。CYCLE代表循环,NOCYCLE代表不循环。如果循环,则当递增序列达到最大值时,循环到最小值;对于递减序列达到最小值时,循环到最大值。如果不循环,达到限制值后,继续产生新值就会发生错误。
6)CACHE(缓冲)定义存放序列的内存块的大小,默认为20。NOCACHE表示不对序列进行内存缓冲。对序列进行内存缓冲,可以改善序列的性能。
2.删除Oracle序列的语法是DROP SEQUENCE 序列名;
3.修改序列的语法
ALTER SEQUENCE 序列名
[INCREMENT BY n]
[{MAXVALUE/ MINVALUE n|NOMAXVALUE}]
[{CYCLE|NOCYCLE}]
[{CACHE n|NOCACHE}];
作者: lkz2004 发布时间: 2011-10-09
这哥们很热爱序列,已经第二次发帖了.
作者: BearFishShow 发布时间: 2011-10-09
引用 3 楼 bearfishshow 的回复:
这哥们很热爱序列,已经第二次发帖了.
这哥们很热爱序列,已经第二次发帖了.
没办法,现在要用到他们,我都不知道,只能上来求助了。
作者: asd411422 发布时间: 2011-10-09
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28