我主要对 pgsql 感兴趣,但我想知道在任何 RDBMS 中是否有一种方法可以在两个相互引用的表上执行插入操作,而无需禁用和重新启用任何 FOREIGN KEY 或 NOT NULL 约束. (你可能会认为这是一只从自己的蛋中诞生的鸡。)
举个实际的例子,如果你有一个选择题测验系统,有“问题”和“答案”表,其中 question.correct_answer 指代 answer.id,而 answer.question 指代 question.id,是否可以添加一个问题和它的答案同时?
(作为记录,我知道您可以在事务块中进行禁用和重新启用,并且另一个解决方案是没有正确答案列,而是将 answer.correct 作为布尔值并进行检查约束确保每个问题都有一个正确答案。但我对这里的替代解决方案并不好奇。)