gpt4 book ai didi

sql - 使用主键约束从 Select Postgresql 插入

转载 作者:行者123 更新时间:2023-11-29 13:03:03 26 4
gpt4 key购买 nike

我正在尝试将数据从一个表复制到另一个在 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";

然而,这在 Postgresql 中失败了,尽管我的主键的默认值设置为 nextval('a_id_seq'::regclass):

SQLSTATE[23502]: Not null violation: 7 ERROR:  null value in column "Id" violates not-null constraint

Postgresql 中是否有任何语法允许我为即将到来的 INSERT 语句选择“DEFAULT”占位符?

最佳答案

如果生成了 ID(即默认设置为序列的下一个 val),则将其保留并复制其余部分。

INSERT INTO "A" 
("Column2","Column3","Column4"...)
SELECT "Temp"."Column2", "Temp"."Column3"... FROM "Temp";

关于sql - 使用主键约束从 Select Postgresql 插入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23121354/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com