gpt4 book ai didi

postgresql - 将主键 int 类型更改为 serial

转载 作者:行者123 更新时间:2023-11-29 11:12:45 27 4
gpt4 key购买 nike

有没有办法在不删除表的情况下将现有主键类型从 int 更改为 serial?我的表中已经有很多数据,我不想删除它。

最佳答案

将 int 转换为序列 more or less only means adding a sequence default to the value , 所以让它成为连续剧;

  • 为序列选择一个起始值,大于表中的任何现有值
    从 mytable 中选择 MAX(id)+1

  • 为序列创建一个序列(tablename_columnname_seq 是个好名字)
    CREATE SEQUENCE test_id_seq MINVALUE 3(假设你想从 3 开始)

  • 更改列的默认值以使用序列
    ALTER TABLE 测试 ALTER id SET DEFAULT nextval('test_id_seq')

  • 改变表/列拥有的序列;
    ALTER SEQUENCE test_id_seq OWNED BY test.id

A very simple SQLfiddle demo .

和往常一样,养成运行完整备份的习惯,运行来自 Internet 上随机用户的更改 SQL 查询 ;-)

关于postgresql - 将主键 int 类型更改为 serial,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23578427/

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