Я только что проверил, и мне разрешено создать таблицу со столбцом, который по умолчанию равен NULL, хотя в то же время это УНИКАЛЬНЫЙ КЛЮЧ:
CREATE TABLE IF NOT EXISTS `u789` (
`column1` varchar(10) DEFAULT NULL,
UNIQUE KEY (column1)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
Как я понимаю , это выглядит странно и не имеет особого смысла. Я ожидал, что вторая вставка
INSERT INTO u789 VALUE (NULL);
не удастся.
Но первое, второе и третье значение NULL вставляются без каких-либо проблем. Кто может объяснить мне, почему это второе и третье столбцы, если NULL уже находится в таблице?
Это теоретический вопрос (насколько я понимаю, в большинстве случаев никто не использует DEFAULT NULL + UNIQUE KEY для одного и того же столбца), но я хочу понять, почему это не вызывает ошибки как только один NULL уже находится в столбце. Я что-то не так делаю с объявлением уникального столбца?
Спасибо.