我的Postgres 9.0数据库中有一个小表(~30行),带有一个整数ID字段(主键),它当前包含从1开始的唯一顺序整数,但不是使用'serial'关键字创建的.
如何更改此表,以便从现在开始插入此表将使该字段的行为就像使用'serial'作为类型创建一样?
我有一个表有一个主键列"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".
请帮我解决这个问题.有没有其他方法可以将整数转换为串行?
在Postgres 9.3表中,我有一个integer主键,自动序列递增,但我达到了最大值integer.如何将其转换integer为serial?
我试过了:
ALTER TABLE my_table ALTER COLUMN id SET DATA TYPE bigint;
Run Code Online (Sandbox Code Playgroud)
但是相同的数据类型不适serial用于bigint.好像我无法转换为serial?