是否有数据库约束可以检查插入的父行是否始终至少有一个子行

时间:2015-10-01 02:42:19

标签: mysql database jpa

正如所描述的标题,我正在寻找一个数据库约束,可以确保新插入的父行总是至少有一个子行。

说我有公司表和文件表。业务规则是

  1. 每个公司可以有多个文件,因此公司表和文件表是一对多的关系;
  2. 每家公司必须至少有一份文件。
  3. 我想在数据库级别进行检查,这样无论何时创建新公司,都必须在同一事务中插入文档。

    有这样的约束吗?

    顺便说一句,我使用MySQL和JPA,所以我也很乐意使用JPA注释来检查是否存在。

1 个答案:

答案 0 :(得分:0)

你需要使用触发器(BEFORE INSERT),但这不是很好的做法。我建议直接在交易中查看。在插入之前,请选择。触发器是可见性的噩梦。