[英]Insert from Select Postgresql with primary key constraint
我正在尝试使用Postgresql中具有相同架构的数据从一个表复制到另一个表。 表上有一个主键约束,因此由于重复的键问题而导致运行失败:
INSERT INTO "A" SELECT * From "Temp";
SQLSTATE[23505]: Unique violation: 7 ERROR: duplicate key value violates unique constraint "A_Id_pkey"
在MySQL中,我可以通过调出每个架构列并将主键替换为NULL来解决此问题。
INSERT INTO "A" SELECT NULL, "Temp"."Column2", "Temp"."Column3"... FROM "Temp";
但是,尽管我的主键的DEFAULT设置为nextval('a_id_seq':: regclass),但这在Postgresql中失败了:
SQLSTATE[23502]: Not null violation: 7 ERROR: null value in column "Id" violates not-null constraint
Postgresql中是否有任何语法可以让我为即将到来的INSERT语句选择“ DEFAULT”占位符?
如果生成了ID(即默认设置为序列的下一个值),则将其保留并复制其余部分。
INSERT INTO "A"
("Column2","Column3","Column4"...)
SELECT "Temp"."Column2", "Temp"."Column3"... FROM "Temp";
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.