点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
什么是序列?
序列是一个数据库对象,它根据序列规范中指定的规则自动生成数值的递增列表。
例如,在表的列(EMPLOYEE_NO)中自动插入员工编号,当在表中插入新记录时,我们使用序列。
序列值按升序或降序生成。
序列与表不相关;它们由应用程序使用。依次有两个值–
CURRVAL –提供序列的当前值。
NEXTVAL –提供序列的下一个值。
句法
创建序列<序列名称> [<序列参数列表>] [通过<子查询>重置]
语法元素
元素 | 描述 |
---|---|
<序列名称> | 它是序列的名称。 |
[<sequence_parameter_list>] | 它指定一个或多个序列参数。 |
从<start_value>开始 | 它描述了起始序列值。 |
由<increment_value>增加 | 这指定了在每次生成新序列值时从每次分配的最后一个值开始递增的值。预设值为1。 |
MAXVALUE <最大值> | 这指定了最大值,可以由序列生成。<max_value>可以在-4611686018427387903和4611686018427387902之间。 |
没有最大值 | 当指定NO MAXVALUE时,对于升序,最大值将为4611686018427387903,而对于降序的最小值将为-1。 |
MINVALUE <min_value> / NO MINVALUE | 它指定序列可以生成的最小值。<min_value>可以在-4611686018427387904和4611686018427387902之间。使用NO MINVALUE时,升序的最小值为1 |
周期 | CYCLE指令指定序列号达到最大值或最小值后将重新启动。 |
没有循环 | 默认选项.NO CYCLE指令指定序列号达到最大值或最小值后将不会重新启动。 |
CACHE <缓存大小> / | 缓存大小指定将在节点中缓存的序列号范围。<cache_size>必须是无符号整数。 |
没有缓存 | 默认选项。NO CACHE指令指定不会在节点中缓存序列号。 |
RESET BY <子查询> | 它指定在数据库重新启动期间,数据库自动执行<subquery>,并且使用返回的值重新启动序列值。 |
我们将创建一个名为DHK_SCHEMA.EMP_NO的序列,当使用该序列时,每次创建该序列的值将增加+1。
序列脚本-
CREATE SEQUENCE DHK_SCHEMA.EMP_NO START WITH 100 INCREMENT BY 1.
在下面的示例中,这里我们将使用对象“序列”在每次执行选择查询时将employee no的值增加+1。在查询中,“ nextval”可用于序列号生成或相同类型的需求。
序列的使用–
SELECT DHK_SCHEMA.EMP_NO.nextval FROM DUMMY;
输出– 100,101,102………因此,每次执行上述选择查询时。