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

Mysql 是否存在可以检查插入的父行始终至少有一个子行的数据库约束,mysql,database,jpa,Mysql,Database,Jpa,如标题所述,我正在寻找一个数据库约束,它可以确保新插入的父行始终至少有一个子行 假设我有一个公司表和一个文档表。商业规则是 每个单位可以有多张单据,单位表和单据表是一对多的关系 每个公司必须至少有一份文件 我希望在数据库级别进行检查,以便无论何时创建新公司,都必须在同一事务中插入文档 有这样的限制吗 顺便说一句,我使用MySQL和JPA,所以我也很乐意使用JPA注释来检查是否有注释。您需要使用触发器(插入之前)来进行检查,但这并不是很好的做法。我建议直接在交易中登记。在插入之前,通过选择进行检查

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

假设我有一个公司表和一个文档表。商业规则是

  • 每个单位可以有多张单据,单位表和单据表是一对多的关系
  • 每个公司必须至少有一份文件
  • 我希望在数据库级别进行检查,以便无论何时创建新公司,都必须在同一事务中插入文档

    有这样的限制吗


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

    您需要使用触发器(插入之前)来进行检查,但这并不是很好的做法。我建议直接在交易中登记。在插入之前,通过选择进行检查。触发器是可见性的噩梦