gpt4 book ai didi

postgresql - 如何将主键从整数转换为序列?

转载 作者:行者123 更新时间:2023-11-29 11:20:39 25 4
gpt4 key购买 nike

在 Postgres 9.3 表中,我有一个 integer 作为主键并自动递增,但我已经达到 integer 的最大值。如何将它从integer转换为serial
我试过:

ALTER TABLE my_table ALTER COLUMN id SET DATA TYPE bigint;

但同样不适用于数据类型 serial 而不是 bigint。好像我无法转换为 serial

最佳答案

serial是一种数据类型,而不是实际的数据类型。它是一个 integer,下面有一些自动执行的额外 DDL 命令:

  1. 创建一个 SEQUENCE(默认具有匹配的名称)。
  2. 设置列 NOT NULL 并默认从该序列中提取。
  3. 使列“拥有”序列。

详细信息:

A bigserial是一样的,围绕 bigint 列构建。您想要 bigint,但您已经实现了。要将现有的 serial 列转换为 bigserial(或 smallserial),您需要做的就是ALTER列的数据类型。序列一般基于bigint,因此相同的序列可以用于任何integer类型。

要将 bigint“更改”为 bigserial 或将 integer 更改为 serial,您只需手动完成剩下的工作:

实际的数据类型还是integer/bigint。如果满足 serial 的所有条件,一些客户端(如 pgAdmin)将在反向工程 CREATE TABLE 脚本中显示数据类型 serial。 p>

关于postgresql - 如何将主键从整数转换为序列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27307835/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com