gpt4 book ai didi

postgresql - 如何停止 "insert or update on table ...violates foreign key constraint"?

转载 作者:行者123 更新时间:2023-11-29 11:49:24 27 4
gpt4 key购买 nike

如果引用表中不存在外键值,如何构造 INSERT 语句使其不会生成错误“insert or update on table ... violates foreign key constraint”?

我只需要在这种情况下不需要创建记录和成功响应。

谢谢

最佳答案

使用查询作为 INSERT 语句的来源:

insert into the_table (id, some_data, some_fk_column
select *
from (
values (42, 'foobar', 100)
) as x(id, some_data, some_fk_column)
where exists (select *
from referenced_table rt
where rt.primary_key_column = x.some_fk_column);

这也可以扩展到多行插入:

insert into the_table (id, some_data, some_fk_column
select *
from (
values
(42, 'foobar', 100),
(24, 'barfoo', 101)
) as x(id, some_data, some_fk_column)
where exists (select *
from referenced_table rt
where rt.primary_key_column = x.some_fk_column);

您没有向我们展示您的表定义,因此我不得不编造表名和列名。你必须把它翻译成你的名字。

关于postgresql - 如何停止 "insert or update on table ...violates foreign key constraint"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45228853/

27 4 0