ITPub博客

首页 > 数据库 > Oracle > Oracle创建和使用序列

Oracle创建和使用序列

原创 Oracle 作者:zhenghaishu 时间:2014-08-12 20:17:16 0 删除 编辑
Oracle创建和使用序列

1 语法
create sequence 序列名称

2 创建序列
SQL> create sequence emp_seq;

Sequence created.

序列是一个数据库对象,因此可以在数据字典中获得其信息。与序列相关的视图为user_objects和user_sequences。

SQL> col object_name format a15;
SQL> col object_type format a15;
SQL> col status format a15;
SQL> select object_name, object_type, status from user_objects where lower(object_name) = 'emp_seq';

OBJECT_NAME    OBJECT_TYPE    STATUS
--------------- --------------- ---------------
EMP_SEQ     SEQUENCE    VALID

SQL> col sequence_name format a15;
SQL> col min_value format 99999;
SQL> col increment_by format 99999;
SQL> select sequence_name, min_value, max_value, increment_by from user_sequences where lower(sequence_name) = 'emp_seq';

SEQUENCE_NAME    MIN_VALUE  MAX_VALUE INCREMENT_BY
--------------- --------- ---------- ------------
EMP_SEQ         1 1.0000E+28        1

3 使用序列
在序列创建以后,要先使用nextval,然后才能使用currval。否则会报错。
SQL> select emp_seq.nextval from dual;

   NEXTVAL
----------
     1

4 指定序列初始值
语法:
create sequence 序列名称 start with 初始值

获取表emp_copy的最大empno值,并利用start with创建序列
SQL> select max(empno) from emp_copy;

MAX(EMPNO)
----------
      7982

SQL> create sequence emp_copy_seq start with 7983;

Sequence created.

可以利用emp_copy_seq的nextval属性作为empno给表emp_copy插值
SQL> insert into emp_copy(empno, ename) values(emp_copy_seq.nextval, 'Li Si');

1 row created.

验证
SQL> select empno, ename from emp_copy where empno = 7983;

     EMPNO ENAME
---------- ---------------
      7983 Li Si







来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/29485627/viewspace-1250106/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2014-02-14

  • 博文量
    112
  • 访问量
    1057346