创建和管理序列
序列是可以生成唯一序列的方案对象,当您需要唯一主键时,这些序号会非常有用。序列通过伪列 CURRVAL 和 NEXTVAL 使用,这些伪列分别返回序列的当前值和下一个值。
在创建序列后,必须使用 NEXTVAL 来初始化序列的第一个值。只有在初始化序列之后,CURRVAL 才会返回其当前值。
HR 方案具有三个序列:DEPARTMENTS_SEQUENCE、EMPLOYEES_SEQUENCE 和 LOCATIONS_SEQUENCE。
提示:当您计划使用序列来填充表的主键后,请为序列赋予一个可反映此目的的名称。(本主题使用 TABLE_NAME _SEQUENCE 命名惯例。)
另请参见:
-
Oracle AI Database Concepts,了解序列概述
-
Oracle AI Database SQL Language Reference(了解有关 CURRVAL 和 NEXTVAL 伪列的更多信息)
-
Oracle AI 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;
要使用“创建数据库序列”工具创建 EVALUATIONS_SEQUENCE,请执行以下步骤:
-
在 "Connections"(连接)框架中,展开 hr_conn 。
-
在方案对象类型的列表中,右键单击序列。
-
在选项列表中,单击新建序列。
-
在“创建序列”窗口的“名称”字段中,键入 EVALUATIONS_SEQUENCE ,使其超过默认值“SEQUENCE1”。
-
如果未显示“属性”窗格,请单击选项卡属性。
-
在“属性”窗格中:
-
在“增量”字段中,键入 1 。
-
在“开头为”字段中,键入 1 。
-
对于其余字段,接受默认值。
-
单击 "OK"(确定)。
创建序列 EVALUATIONS_SEQUENCE。其名称显示在连接框架中的“Sequences(序列)”下。
-
另请参见:
-
Oracle AI 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 AI Database SQL Language Reference 以了解有关 DROP SEQUENCE 语句的信息