Уникальное ограничение, позволяющее пустым значениям в MySQL
У меня есть поле, в котором хранятся коды продуктов. Коды уникальны, но некоторые продукты просто не имеют кода. Я не могу изобретать коды, потому что это коды провайдеров.
Возможно ли такое ограничение в MySQL?
Я ноб с хранимыми процедурами и триггерами, поэтому, если решение связано с одним из них, будьте терпеливы.
Обновление:
Столбец NOT Null. Вот почему я не смог этого сделать.
Ответы
Ответ 1
Да, вы можете это сделать. См. Ссылку MySQL (версия 5.5).
Индекс UNIQUE создает ограничение, так что все значения в индексе должны быть разными. Произошла ошибка, если вы попытаетесь добавить новую строку с ключевым значением, которое соответствует существующей строке. Для всех двигателей индекс UNIQUE допускает несколько значений NULL для столбцов, которые могут содержать NULL.
Ответ 2
Да, если вы сделаете столбец кода продукта нулевым (не объявленным с помощью NOT NULL
), уникальный ключ будет содержать несколько строк с NULL
кодами продуктов.
Ответ 3
MySQL по-прежнему позволяет нескольким строкам иметь значение NULL
в уникальном столбце.