【问题标题】:Is there a database constraint that can check an inserted parent row always has at least one child row是否存在可以检查插入的父行始终至少有一个子行的数据库约束
【发布时间】:2015-10-01 02:42:19
【问题描述】:

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

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

  1. 每个公司可以有多个文档,所以公司表和文档表是一对多的关系;
  2. 每家公司必须至少有一份文件。

我想在数据库级别进行检查,以便每当创建新公司时,都必须在同一事务中插入一个文档。

有这样的限制吗?

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

【问题讨论】:

    标签: mysql database jpa


    【解决方案1】:

    您需要为此使用触发器(BEFORE INSERT),但这并不是一个很好的做法。我建议直接在交易中检查它。就在插入之前,通过选择检查。触发器是可见性的噩梦。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-09-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多