mysql的带特定值的联合唯一性约束可以吗?
比如这个表
CREATE TABLE `COMPOSITE_UNIQUE_KEY` (
`ID` int(11) NOT NULL,
`NAME` varchar(255) NOT NULL,
`TYPE` int(11) NOT NULL,
`IS_DELETE` tinyint(1) NOT NULL DEFAULT '0',
`UPDATE_TIME` datetime DEFAULT NULL,
PRIMARY KEY (`ID`),
UNIQUE KEY `compositeUnique` (`NAME`,`TYPE`,`IS_DELETE`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
我想NAME,TYPE,IS_DELETE具有联合唯一性约束,但是只有当IS_DELETE=0时生效,这样怎么弄?
举个例子
NAME TYPE IS_DELETE
a 0 0
b 0 0
这样是不被允许的
a 0 1
b 0 0
这样是可以的
a 0 1
b 0 1
这样也可以