如何在一对一关系中插入记录?
假设我有 3 个表:表 A、表 B、表 C
我必须在那些表中插入一条记录,其中表 A 被引用为主键的主表。
让我们这样说:
tableB.PK = tableA.PK
tableC.PK = tableA.PK
现在,
当我在 tableB 或 tableC 中插入记录时发生错误:
Error Message: The INSERT statement conflicted with the FOREIGN KEY constraint "FK_tableB_tableA"
但是当我在作为两个表主键基础的 tableA 中插入时,没问题,它会递增。
如何插入记录?特别是在 JPA 中。
- 是否需要先插入表A,然后再插入其他表? (只是这样做了,但它不起作用)
- 我需要同时在表中插入数据吗? (如何?在 JPA 中会很好)
最佳答案
这里又是我的评论作为回答
因为在tableB 和tableC 中有对tableA 的引用,所以必须先插入tableA 并检索生成的PK。然后您可以使用检索到的 ID 插入任何其他表。对于 JPA,请看这里:How to get Id of last persisted entity using JPA
下面是如何在 sql server 中实现这一点的示例: http://sqlfiddle.com/#!3/a3f62/3
这是关系数据库和外键的基础知识,我没有阅读维基文章,但它不得不提到同样的想法:http://en.wikipedia.org/wiki/Foreign_key
关于sql - 在一对一关系中插入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23823088/