简单的表格:
ID, NAME, POST_ID, GROUP_ID
必须设置post\u id或group\u 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
有没有可能设置这么复杂的限制规则?
2条答案
按热度按时间mf98qq941#
您必须在创建和更新事件时使用触发器,并在条件
(COALESCE(POST_ID, GROUP_ID) IS NULL OR (POST_ID IS NOT NULL AND GROUP_ID IS NOT NULL))
发生下面是您问题的答案:mysql中的非空约束或非空约束
这是程序,根据mysql的版本稍微修改一下语法。
kb5ga3dv2#
你可以用
CHECK
创建表时的约束: