数据库序列相关问题。 数据库的序列是不是oracle特有的,如果不是都还有那些数据库有序列,创建,删除和修改的语句是什么样子的。在线等,大侠快来帮帮忙吖。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你问的好多.序列是oracle特有.sql server称为自增列,虽然大体差不多,但也有不少差异.创建: create ...删除: delete ...修改: alter .... 是的,序列(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}]; 求助,回滚错误号 22 关于计算数值排名逻辑问题。。。。 在线等。。。 请高手来看这段存储过程会产生什么问题,有哪不对? 请教 oracle 5用户和30用户的版本有何不同?具体如何限制呢? update 问题 请帮忙 谢谢了 将数据按月份进行分组 linux下 oracle无法启动 10G的EXP到8I的IMP,要怎麼匯入? Oracle在安装后,字符集可否进行更改(版本8.0.5)? ora-00054:资源正忙,要求指定NOWAIT 查询指定时间内所有夜晚的数据? 关于SQL的几个问题
删除: delete ...
修改: alter ....
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}];