创建和管理序列
序列是可以生成唯一序列的方案对象,当您需要唯一主键时,这些序号会非常有用。序列通过伪列 CURRVAL 和 NEXTVAL 使用,这些伪列分别返回序列的当前值和下一个值。
在创建序列后,必须使用 NEXTVAL 来初始化序列的第一个值。只有在初始化序列之后,CURRVAL 才会返回其当前值。
HR 方案具有三个序列:DEPARTMENTS_SEQUENCE、EMPLOYEES_SEQUENCE 和 LOCATIONS_SEQUENCE。
提示:当您计划使用序列来填充表的主键后,请为序列赋予一个可反映此目的的名称。(本主题使用 TABLE_NAME _SEQUENCE 命名惯例。)
另请参见:
-
Oracle Database Concepts(概括了解序列)
-
Oracle Database SQL Language Reference(了解有关 CURRVAL 和 NEXTVAL 伪列的更多信息)
-
Oracle Database Administrator’s Guide,了解有关管理序列的信息
-
“关于序列和并发”
教程:创建序列
本教程介绍如何使用“创建数据库序列”工具创建序列,以生成 EVALUATIONS 表的主键。
EVALUATIONS 表是在 Example 4-1 中创建的。
要创建序列,请使用 SQL Developer 的“创建序列”工具,或者用 DDL 语句 CREATE SEQUENCE。对应的 DDL 语句为:
CREATE SEQUENCE evaluations_sequence
INCREMENT BY 1
START WITH 1 ORDER;
使用“Create Database Sequence(创建数据库序列)”工具创建 EVALUATIONS_SEQUENCE 的步骤:
-
在 "Connections"(连接)框架中,展开 hr_conn 。
-
在方案对象类型的列表中,右键单击序列。
-
在选项列表中,单击新建序列。
-
在“Create Sequence(创建序列)”窗口的“Name(名称)”字段中,在默认值“SEQUENCE1”上键入
EVALUATIONS_SEQUENCE。 -
如果未显示“属性”窗格,请单击选项卡属性。
-
在“Properties(属性)”窗格中:
-
在“增量”字段中,键入
1。 -
在“开头为”字段中,键入
1。 -
对于其余字段,接受默认值。
-
单击确定。
创建序列 EVALUATIONS_SEQUENCE。其名称显示在连接框架中的“Sequences(序列)”下。
-
另请参见:
-
Oracle SQL Developer User’s Guide(了解有关使用 SQL Developer 创建序列的详细信息)
-
Oracle Database SQL Language Reference(了解有关 CREATE SEQUENCE 语句的信息)
-
“教程:创建在插入行之前为行生成主键的触发器”将学习如何创建触发器以将 EVALUATIONS_SEQUENCE 创建的主键插入到 EVALUATIONS 表中
删除序列
要删除序列,请使用 SQL Developer 连接框架和“删除”工具,或使用 DDL 语句 DROP SEQUENCE。
此语句删除序列 EVALUATIONS_SEQUENCE:
DROP SEQUENCE EVALUATIONS_SEQUENCE;
注意:请勿删除序列 EVALUATIONS_SEQUENCE, Example 5-3 需要该序列。如果您要练习删除序列,请创建其他序列,然后删除它们。
使用“删除”工具删除序列的步骤:
-
在 "Connections"(连接)框架中,展开 hr_conn 。
-
在方案对象类型的列表中,展开序列。
-
在序列列表中,右键单击要删除的序列的名称。
-
在选项列表中,单击删除。
-
在 "Drop" 窗口中,单击 Apply 。
-
在“确认”窗口中,单击确定。
另请参见: Oracle Database SQL Language Reference(了解有关 DROP SEQUENCE 语句的信息)