数据库的序列是不是oracle特有的,如果不是都还有那些数据库有序列,创建,删除和修改的语句是什么样子的。在线等,大侠快来帮帮忙吖。

解决方案 »

  1.   

    你问的好多.序列是oracle特有.sql server称为自增列,虽然大体差不多,但也有不少差异.创建: create ...
    删除: delete ...
    修改: alter ....
      

  2.   

    是的,序列(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}];