Я только что проверил, и разрешено создавать таблицу со столбцом, который по умолчанию равен 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 уже находится вколонка.Я делаю что-то не так с объявлением уникального столбца?
Спасибо.