CREATE SEQUENCE

一个用于定义新序列的 SQL 命令

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

CREATE SEQUENCEPostgreSQL 6.1 中被添加。

用法

通常,当使用 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 SEQUENCE, DROP SEQUENCE, currval(), nextval(), setval(), pg_sequence, pg_sequences

反馈

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