我想知道是否有一种方法可以在给定条件下限制 MySQL INSERT,例如:
我们有一个包含项目的表和另一个包含员工的表。一个项目中允许的最大人数限制为 5。我们如何在 MySQL 中做到这一点?
提前致谢, 马利
最佳答案
您无法通过模式强制执行此约束而不破坏关系(即有 5 个 employees
列)。 MySQL 不允许 CHECK
约束。
您可以在执行查询之前分别SELECT
员工数量,或者您可以使用带限制的INSERT ... SELECT
。
INSERT INTO Employees
(employee, column, names)
SELECT
?, ?, ?
FROM
Projects
NATURAL JOIN Employees
WHERE
projID = ?
GROUP BY
projID
HAVING
COUNT(empID) < 5
关于MySQL 有条件插入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17163376/