PostgreSQL:事务和外键问题

lymgl2op  于 2023-01-30  发布在  PostgreSQL
关注(0)|答案(2)|浏览(166)

我在表A中插入一个值,它的主键是序列类型。我想使用查询的返回值作为表B的外键......但是我收到了以下消息:

  • 错误:在表“tb_midia_pessoa”上插入或更新违反了外键约束“tb_midia_pessoa_id_pessoa_fkey”详细信息:键(id_pessoa)=(30)在表“tb_pessoa”中不存在。)*

我如何才能做到这一点,而不:

  • 启动新事务
  • 删除外键约束=O?

问候佩德罗

gg0vcinb

gg0vcinb1#

您可以创建一个可延迟FK,只需使用DEFERRABLE,也可以使用INITIALLY DEFERRED,这取决于您。
http://www.postgresql.org/docs/current/static/sql-createtable.html

ruarlubt

ruarlubt2#

下面的语句允许不可延迟的约束被延迟到事务提交。如果你不想改变FK定义。

SET CONSTRAINTS ALL DEFERRED;

相关问题