MySQL 有条件插入

标签 mysql conditional-statements

我想知道是否有一种方法可以在给定条件下限制 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/

相关文章:

mysql> 错误 1265 : data truncated for column 'xxx' at row 1

bash - 如何在 Bash 中执行复杂的条件语句(混合 'and' &&、 'or' || ...)

mysql - MySQL 关系数据库设计的快速提示

mysql - 如何获取mysql中所有值都相同的行

mysql - 如何在 Jasper 上显示多行数据

javascript - jQuery Conditional 基于元素的内部 HTML 内容

sql - 如果存在还是存在?

makefile - GNU Make 中的条件依赖

python - 关注 Google 结果的前 5 页 Python Mechanize

mysql - 有没有办法将 "migrate"与 Wordpress 一起使用的现有 MySQL 数据库迁移到 Azure Blob 存储?