2016-12-07 51 views
-1

这里是我的表:Mysql的唯一键不起作用

CREATE TABLE `loan_table` (
`ID` bigint(38) NOT NULL AUTO_INCREMENT, 
`LOAN_ID` bigint(38) DEFAULT NULL, 
`PLAN_ID` bigint(38) NOT NULL, 
`EXT_LOAN_APP_ID` bigint(38) DEFAULT NULL, 
`REDISTRIBUTE_TIME` datetime DEFAULT NULL, 
PRIMARY KEY (`ID`), 
UNIQUE KEY `IDX_UN_LOAN_PLAN_APP`(`LOAN_ID`,`PLAN_ID`,`EXT_LOAN_APP_ID`,`REDISTRIBUTE_TIME`) 
) ENGINE=InnoDB AUTO_INCREMENT=20 DEFAULT CHARSET=utf8; 

我加4列(LOAN_ID,plan_id的数据类型,EXT_LOAN_APP_ID,REDISTRIBUTE_TIME)唯一的密钥,但我可以一次又一次地执行下面插入SQL。

INSERT INTO `loan_table` (`LOAN_ID`, `PLAN_ID`,`EXT_LOAN_APP_ID`, `REDISTRIBUTE_TIME`) 
VALUES 
(435870, 0, 2369, NULL); 
+0

当然可以。 'null'是一个特殊的值。这里没有问题,它按预期工作,你只是没有正确阅读文档。 – Mjh

回答

1

在一个唯一索引,MySQL的将NULL作为唯一value.So这些数值可以反复

(435870, 0, 2369, NULL); 

插入使列NOT NULL并默认为空字符串。