postgresql - 在 postgresql 中创建序列时如何传递一个大整数?
问题描述
我正在尝试创建一个序列
CREATE SEQUENCE seq_id MINVALUE 1 MAXVALUE 9999999999999999999999999999 INCREMENT BY 1 START WITH 1 CACHE 20 NO CYCLE
它抛出一个错误:值“9999999999999999999999999999”超出了 bigint 类型的范围。我正在尝试将 oracle 查询转换为 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;
推荐阅读
- javascript - How to generate thumbnail URL while/after uploading video to AWS S3 bucket
- javascript - 如何对数组中的每个元素进行 API 调用
- android - Apple Sign In Not Working in Flutter Android App
- integer - Decomposition of an integer into a sum of strictly positive integers
- php - How to recognize a barcode format
- visual-studio-code - 取消到上一个函数 Visual Studio
- c# - 如何在 C# 中使用循环将一个类中的多个实例制作成一个数组
- kotlin - Kotlin - 类型参考
无法为类型参数获取 Class<*> - flutter - Navigator.pop 显示黑屏
- c# - 错误 NU1202:无法安装全局 .net 工具