2016-12-07 67 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並默認爲空字符串。