在Postgres 9.3表中,我有一个整数作为主键,自动序列递增,但我已达到整数的最大值.如何将其从整数转换为串行?
我试过了:
我试过了:
ALTER TABLE my_table ALTER COLUMN id SET DATA TYPE bigint;
但同样不适用于数据类型serial而不是bigint.好像我无法转换为串口?
serial
是伪数据类型,而不是实际数据类型.它是一个整数,下面还有一些自动执行的DDL命令:
>创建序列(默认情况下具有匹配的名称).
>将列设置为NOT NULL,默认为从该序列中绘制.
>使列“拥有”序列.
细节:
> Safely and cleanly rename tables that use serial primary key columns in Postgres?
一个bigserial
是相同的,围绕一个bigint列.你想要bigint,但你已经实现了.要将现有的串行列转换为bigserial(或smallserial),您需要做的就是更改列的数据类型.序列通常基于bigint,因此相同的序列可用于任何整数类型.
要将bigint“更改”为bigserial或整数形成一个序列,您只需要手动完成其余操作:
> Creating a PostgreSQL sequence to a field (which is not the ID of the record)
实际数据类型仍为整数/ bigint.如果满足串行的所有条件,某些客户端(如pgAdmin)将在反向工程CREATE TABLE脚本中显示数据类型serial.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。