如标题所述,我正在寻找一种数据库约束,可以确保新插入的父行始终至少有一个子行。
假设我有一个公司表和一个文档表。业务规则是
- 每个公司可以有多个文档,因此公司表和文档表是一对多的关系;
- 每家公司必须至少拥有一份文件。
我想在数据库级别进行检查,以便每当创建新公司时,都必须在同一事务中插入文档。
有这样的限制吗?
顺便说一下,我使用 MySQL 和 JPA,所以我也很乐意使用 JPA 注释来检查是否有。
最佳答案
为此,您需要使用触发器(BEFORE INSERT),但这并不是一个很好的做法。我建议直接在交易中查看。在 insert 之前,通过 select 进行检查。触发器对于可见性来说是一场噩梦。
关于mysql - 是否有数据库约束可以检查插入的父行始终至少有一个子行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32878626/