一个简单的表格:
ID, NAME, POST_ID, GROUP_ID
必须设置 POST_ID 或 GROUP_ID,但不能同时设置,也不能都不设置。所以,
有有效案例:
ID, NAME, POST_ID, GROUP_ID
x, y, 1, NULL
x, y, NULL, 4
以及无效的情况:
ID, NAME, POST_ID, GROUP_ID
x, y, NULL, NULL
x, y, 4, 4
这么复杂的限制规则可以设置吗?
最佳答案
您必须在 CREATE 和 UPDATE 事件上使用 TRIGGERS,并在发生条件 (COALESCE(POST_ID, GROUP_ID) IS NULL OR (POST_ID IS NOT NULL AND GROUP_ID IS NOT NULL))
时引发异常
这是您问题的答案: Either OR non-null constraints in MySQL
这是流程,根据MySql的版本稍微改变一下语法。
关于MySQL,可以防止两个字段为NULL或NOT NULL吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52097214/