我创造了我的桌子犯了一个错误。主键不正确。我删除了约束,现在我的表中没有主键,只有带数据的字段。现在我想再次将此字段设置为auto_increment主键而不会丢失我的数据。我怎么能这样做? 我试过这个:
ALTER TABLE name_table ADD COLUMN name_column serial primary key;
但是有了这个,我正在丢失我的数据并创建一个我不想要的新专栏
答案 0 :(得分:0)
试试这个
array[lo + i]
答案 1 :(得分:0)
根据我的建议,
之后,您已更改列数据类型并获取所需数据。我希望它能奏效。
答案 2 :(得分:0)
大家好,我正在尝试几种方法,我发现了这个,也许后来有人可以使用:
创建一个sequencez:Sequenz是Postgresql实现生成auto_increment字段的方式。我们有一个auto_increment也是一个主键。不应该是这样,不是规则,但在大多数情况下,auto_increment字段是主键。 创建一个序列是这样的:
CREATE SEQUENCE exemplo_id_seq
INCREMENT 1 --the increment upgrate will be made 1 + 1
MINVALUE 1
MAXVALUE
START 1 --the start counting is in 1
CACHE 1;
此后只是使用NEXTVAL将此序列提供给受影响的字段,如下所示:
ALTER TABLE table_name ALTER COLUMN id SET DEFAULT NEXTVAL("exemplo_id_seq"::regclass);
工作正常而不会丢失旧错误的数据