MySQL 仅当存在 "enabled" 特征时,两个值的唯一组合
MySQL unique combination of two values only when "enabled" feature is present
A table 有两列 folio 和 company 以及第三列 启用。仅当 enabled 设置为 true 或“truthy”值时,前两列的组合必须是唯一的。
如何实施约束以保证始终执行上述规则?
可能:
folio | company | enabled
2 B false
2 B false
2 B true
不可能:
folio | company | enabled
2 B false
2 B true
2 B true
谢谢
MYSQL 不支持此类约束。
您应该改用存储过程来插入数据,这样您就可以进行一些检查和验证。
参见参考:Unique Constraint with conditions in MYSQL
Insted of false use NULL
,mysql 将 NULL
视为 UNIQUE
约束中的不同值,并保持原样。
然后在所有 3 列上放置一个唯一键。
只需重复最后一次插入,它不会让你。
A table 有两列 folio 和 company 以及第三列 启用。仅当 enabled 设置为 true 或“truthy”值时,前两列的组合必须是唯一的。
如何实施约束以保证始终执行上述规则?
可能:
folio | company | enabled
2 B false
2 B false
2 B true
不可能:
folio | company | enabled
2 B false
2 B true
2 B true
谢谢
MYSQL 不支持此类约束。
您应该改用存储过程来插入数据,这样您就可以进行一些检查和验证。
参见参考:Unique Constraint with conditions in MYSQL
Insted of false use NULL
,mysql 将 NULL
视为 UNIQUE
约束中的不同值,并保持原样。
然后在所有 3 列上放置一个唯一键。
只需重复最后一次插入,它不会让你。