MySQL: UNIQUE, но DEFAULT NULL - разрешено при создании таблицы. Допускается вставка более 1 NULL. Почему?

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

Спасибо.

7
задан Haradzieniec 15 November 2011 в 20:25
поделиться