我在firebird中有包含循环的表。我还没有找到一个很好的方法来插入数据,其中表A 有一个FK到表B 而表B 有一个FK到表A 。
这不是一个不寻常的数据库问题,但我无法让firebird插入行。以下是我的看法:
firebird有延迟约束检查的标志,但它出现了 它们没有实现为功能(是吗?)。
Firebird 3.0 Docs似乎没有提到延迟约束 检查作为功能添加(是否会在那里?)
据我所知,你不能在两张表中插入两行 在单个交易中解决问题。 (这是 真?)
是否在插入过程中删除所有约束的唯一选项? (不太棒)
答案 0 :(得分:1)
我建议使用非必填字段,插入没有FK值的2行,然后更新它们。
如果要在单个语句中进行,则必须使用存储过程或"执行块"
祝你好运