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

标签 mysql database jpa

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

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

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

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

有这样的限制吗?

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

最佳答案

为此,您需要使用触发器(BEFORE INSERT),但这并不是一个很好的做法。我建议直接在交易中查看。在 insert 之前,通过 select 进行检查。触发器对于可见性来说是一场噩梦。

关于mysql - 是否有数据库约束可以检查插入的父行始终至少有一个子行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32878626/

相关文章:

java - 带有继承的双向一对多不起作用(jpa 与 hibernate 3.5.4)

mysql - 合并多个相似查询

php - 处理和防止死锁的正确方法

php - 从 MySQL 行生成 QR 码

MySQL 多个数据库和用户

iphone - 关于服务器/客户端结构 iOS App 开发的服务器实现的建议?

mysql - Docker Image 中无法通过套接字连接到本地 MySQL 服务器错误

java - Android - 连接到 MySQL 数据库

java - 如何使用 Object 类型的参数调用 CriteriaBuilder.lessThan

sql - 具有空值的唯一键