您的位置:首页 > 数据库 > Oracle

Oracle的序列操作

2016-05-26 16:35 489 查看
序列

概念:

序列是以有序的方式生成唯一整数值的数据对象(例如,表、视图、触发器、索引都是数据对象),通常用作表的主键或唯一键。序列不占用实际的存储空间,在数据字典中只存储序列的定义描述。

1、创建序列:(1)语法创建

语法格式create sequence sequence_name

       Increment by integer

       Start with integer;

Increment by:数值递增值,即两个整数之间的间隔,默认值为1.

Start with:序列的起始值

Eg:  createsequence s_create

increment by 2

start with 3;

         (2)直接点击序列右键新建序列

2、使用序列

使用序列是指使用序列的下面两个属性(也叫伪列)

Netxval:返回序列的下一个值

Currval:返回序列的当前值

 

注:在序列的初始化的时候必须使用Netxval(意指检索序列的下一个值)

Eg: SELECT no_seq.nextval FROMdual;

初始化之后,就可使用currval来获取当前值。

SQL> SELECT no_seq.currval FROM dual;

例:为主键指定序列编号。

步骤方法:创建表、创建序列、创建触发器、插入数据,最后进行测试。

(1)创建表

SQL> CREATE table Disney

(

     id number primary key,

     data varchar2(10)

);

(2)创建序列

SQL> CREATE sequence id_seq;

(3)创建触发器

SQL> CREATE or replace  trigger bifer_disney_id_pk

     beFORe insert

       on Disney

       FOR each row

     BEGIN

       SELECT id_seq.nextval
into :new.id FROM dual;

     END;

放进新的行(new)里的id列里面。

   Trigger:触发器  bifer_disney_id_pk:对象名字

(4)插入数据

SQL> INSERT INTO Disney(data)  VALUES('Tom');

SQL> INSERT INTO Disney (id,data)  VALUES(6,'Jerry');

(5)测试

SQL> SELECT * FROM Disney;

       ID     DATA

-------------------------------

        1     Tom

        2     Jerry

 

3、修改序列

Alter sequence sequence_name

Increment by integer

Start with integer;

 

4、删除序列

Drop sequence sequence_name;

注:

Drop:是对象的删除(表、视图、触发器、序列等等)

Delete:是记录的删除

 

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: