加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

postgresql – 如何将主键从整数转换为串行?

发布时间:2020-12-13 18:06:54 所属栏目:百科 来源:网络整理
导读:在Postgres 9.3表中,我有一个整数作为主键,自动序列递增,但我已达到整数的最大值.如何将其从整数转换为串行? 我试过了: ALTER TABLE my_table ALTER COLUMN id SET DATA TYPE bigint; 但同样不适用于数据类型serial而不是bigint.好像我无法转换为串口? se
在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.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读