相关疑难解决方法(0)

将"serial"添加到Postgres中的现有列

我的Postgres 9.0数据库中有一个小表(~30行),带有一个整数ID字段(主键),它当前包含从1开始的唯一顺序整数,但不是使用'serial'关键字创建的.

如何更改此表,以便从现在开始插入此表将使该字段的行为就像使用'serial'作为类型创建一样?

postgresql

80
推荐指数
5
解决办法
10万
查看次数

如何将整数转换为串行

我有一个表有一个主键列"gid",其类型是"整数非空".我想将其转换为"Serial NOT NULL",以便我可以在此表中插入一些值.我使用以下命令将其转换为串行:

CREATE SEQUENCE test_table_gid_seq
        INCREMENT 1
        MINVALUE 1
        MAXVALUE 2147483648 START 1
        CACHE 1;

ALTER TABLE test_table ALTER COLUMN gid
        SET DEFAULT nextval('test_table_gid_seq'::regclass);
Run Code Online (Sandbox Code Playgroud)

此命令将整数转换为串行.但是当我在发生错误后向表中输入一些数据时:

错误:重复键值违反唯一约束"pk_test".

请帮我解决这个问题.有没有其他方法可以将整数转换为串行?

postgresql

19
推荐指数
1
解决办法
1万
查看次数

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

在Postgres 9.3表中,我有一个integer主键,自动序列递增,但我达到了最大值integer.如何将其转换integerserial
我试过了:

ALTER TABLE my_table ALTER COLUMN id SET DATA TYPE bigint;
Run Code Online (Sandbox Code Playgroud)

但是相同的数据类型不适serial用于bigint.好像我无法转换为serial

postgresql ddl types auto-increment postgresql-9.3

7
推荐指数
1
解决办法
9100
查看次数

标签 统计

postgresql ×3

auto-increment ×1

ddl ×1

postgresql-9.3 ×1

types ×1