2016-12-07 3 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 и DEFAULT пустая строка.

Смежные вопросы