我有一个我们将调用 table_A 的表,它有一个引用 table_B 的外键。Table_B 也有一个引用 table_A 的外键。要为 table_A 插入记录,我必须将外键约束配置为最初延迟。我正在尝试首先创建table_A,然后创建table_B 进入table_A 的pk,然后最后将table_B 的pk 输入table_A。
我正在使用 sqlalchemy 表达式语言(而不是 orm),并且无法将约束设置为延迟。我尝试通过引擎的连接手动设置它,但它不起作用。我确实在 table_A 上设置了声明为 DEFERRABLE INITIALLY DEFERRED 的外键。在交易开始时,我有:
connection.execute("begin")
connection.execute("set constraints deferred")
但是,引用 table_B 的 table_A 上的 fk 约束继续被违反。我尝试查看表、连接和事务类,但没有找到任何明确延迟事务约束的内容。我正在使用 Postgresql;任何帮助将非常感激。