繁体   English   中英

从具有主键约束的Select Postgresql中插入

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM