SAP HANA 教程:创建序列
什么是序列?
序列是一个数据库对象,它根据序列规范中指定的规则自动生成递增的数字列表。
例如,当新记录插入表中时,要自动在表的列(EMPLOYEE_NO)中插入员工编号,我们就可以使用序列。
序列值按升序或降序生成。
序列不与表关联;它们由应用程序使用。序列中有两个值——
- CURRVAL – 提供序列的当前值。
- NEXTVAL – 提供序列的下一个值。
语法
CREATE SEQUENCE <sequence_name> [<sequence_parameter_list>] [RESET BY <subquery>]
语法元素
元素 | 描述 |
---|---|
<序列名> | 它是序列的名称。 |
[<sequence_parameter_list>] | 它指定一个或多个序列参数。 |
START WITH <start_value> | 它描述序列的起始值。 |
INCREMENT BY <increment_value> | 这指定了每次生成新序列值时,从上次分配的值递增的值。默认值为1。 |
MAXVALUE <max_value> | 这指定了序列可以生成的最大值。 |
NO MAXVALUE | 当指定NO MAXVALUE时,对于升序序列,最大值为4611686018427387903;对于降序序列,最小值为-1。 |
MINVALUE <min_value> / NO MINVALUE | 它指定序列可以生成的最小值。 |
CYCLE | CYCLE指令指定序列号在达到其最大或最小值后将重新开始。 |
NO CYCLE | 默认选项。NO CYCLE指令指定序列号在达到其最大或最小值后不会重新开始。 |
CACHE <cache_size> / | 缓存大小指定将缓存到节点中的序列号范围。 |
NO CACHE | 默认选项。NO CACHE指令指定序列号将不会缓存到节点中。 |
RESET BY <subquery> | 它指定在数据库重启期间,数据库自动执行 |
示例 –
我们将创建一个名为DHK_SCHEMA.EMP_NO的序列,每次使用该序列时,它将按+1递增序列值。
序列脚本 –
CREATE SEQUENCE DHK_SCHEMA.EMP_NO START WITH 100 INCREMENT BY 1.
在此示例中,我们将使用对象“sequence”来使员工编号的值在每次执行SELECT查询时递增+1。在查询中,“nextval”可用于生成序列号或类似需求。
序列的使用 –
SELECT DHK_SCHEMA.EMP_NO.nextval FROM DUMMY;
输出 – 100,101,102……每次执行上述SELECT查询时依此类推。