CREATE SEQUENCE

定义新序列的 SQL 命令

CREATE SEQUENCE 是一个 DDL 命令,用于定义一个新的序列。

CREATE SEQUENCE 添加于 PostgreSQL 6.4

用法

通常,在使用 SERIALBIGSERIAL 伪数据类型定义表列时,序列会自动创建。当然,也可以使用 CREATE SEQUENCE 手动创建序列并将其分配给表列。

可以为 int2 (smallint)、int4 (int) 和 int8 (bigint) 数据类型创建序列。

如果列的默认值设置为从数据类型更大的序列读取(例如,int4 列使用 int8 序列),则一旦序列值超过列数据类型的最大值,就会发生超出范围错误。

请注意,执行 CREATE SEQUENCE 时,如果未指定序列的数据类型,则假定为 int8

更改历史记录

示例

CREATE SEQUENCE 的基本用法示例

postgres=# CREATE SEQUENCE foo_seq;
CREATE SEQUENCE

postgres=# \ds+
                                List of relations
 Schema |  Name   |   Type   |  Owner   | Persistence |    Size    | Description
--------+---------+----------+----------+-------------+------------+-------------
 public | foo_seq | sequence | postgres | permanent   | 8192 bytes |
(1 row)

postgres=# SELECT * FROM pg_sequences\gx
-[ RECORD 1 ]-+--------------------
schemaname    | public
sequencename  | foo_seq
sequenceowner | postgres
data_type     | bigint
start_value   | 1
min_value     | 1
max_value     | 9223372036854775807
increment_by  | 1
cycle         | f
cache_size    | 1
last_value    |

请注意,默认情况下,序列创建为 int8 (bigint)。

类别

DDL序列SQL 命令

另请参阅

ALTER SEQUENCEDROP SEQUENCEcurrval()nextval()setval()pg_sequencepg_sequences

反馈

提交任何关于“CREATE SEQUENCE”的评论、建议或更正 此处