在MySQL中,我可以在数据库级别添加如下限制吗?
我需要确保1.特定列只能采用"true"或"false"值.2.而且只有一行应该具有"真实"价值?
在MySQL中,唯一索引将忽略任何NULL值。因此,您可以使用一些技巧。
您可以考虑添加可为空的bit列(其值只能为1或0):
ALTER TABLE mytable
ADD COLUMN `is_default` BIT NULL,
ADD UNIQUE INDEX `is_default_UNIQUE` (`is_default` ASC);
Run Code Online (Sandbox Code Playgroud)
此时,一行可以是1(TRUE),并且尝试添加另一行也为TRUE将导致错误:
1062: Duplicate entry '\x01' for key 'is_default_UNIQUE'
Run Code Online (Sandbox Code Playgroud)
唯一要注意的是,所有其他行都必须是NULL且不能为假,因为这也将视为唯一值。
(虽然这实际上不是索引要使用的内容)
| 归档时间: |
|
| 查看次数: |
8994 次 |
| 最近记录: |