首页 > 解决方案 > 在 postgresql 中创建序列时如何传递一个大整数?

问题描述

我正在尝试创建一个序列

CREATE SEQUENCE seq_id MINVALUE 1 MAXVALUE 9999999999999999999999999999 INCREMENT BY 1 START WITH 1 CACHE 20 NO CYCLE

它抛出一个错误:值“9999999999999999999999999999”超出了 bigint 类型的范围。我正在尝试将 oracle 查询转换为 postgreSQL。

标签: postgresql

解决方案


我通常在创建表时只使用 bigserial。

CREATE TABLE table_name (
  seq_column bigserial,
  some_column text,
)

这会自动为您创建一个序列。见https://www.postgresql.org/docs/current/datatype-numeric.html#DATATYPE-SERIAL

也可以:

CREATE SEQUENCE tablename_colname_seq AS bigint;

推荐阅读