PostgreSQL:交易和外键问题

时间:2010-09-16 20:49:15

标签: postgresql transactions foreign-keys

我在表A中插入一个值,该值具有串行类型作为主键。我想使用查询的返回值作为表B的外键...但我收到此消息:

错误:表“tb_midia_pessoa”上的插入或更新违反外键约束“tb_midia_pessoa_id_pessoa_fkey”DETAIL:表“tb_pessoa”中不存在键(id_pessoa)=(30)。 )

如果没有: - 开始新的交易 - 删除我的外键约束= O. ?

问候! 佩德罗

2 个答案:

答案 0 :(得分:10)

你可以制作一个可推迟的FK,只需使用DEFERRABLE并且可能是最初的,这取决于你。

http://www.postgresql.org/docs/current/static/sql-createtable.html

答案 1 :(得分:4)

下面的语句允许延迟不可延迟的约束,直到提交事务为止。如果您不想更改FK定义。

SET CONSTRAINTS ALL DEFERRED;