Уникальное ограничение, позволяющее пустым значениям в MySQL

У меня есть поле, в котором хранятся коды продуктов. Коды уникальны, но некоторые продукты просто не имеют кода. Я не могу изобретать коды, потому что это коды провайдеров.

Возможно ли такое ограничение в MySQL?

Я ноб с хранимыми процедурами и триггерами, поэтому, если решение связано с одним из них, будьте терпеливы.

Обновление: Столбец NOT Null. Вот почему я не смог этого сделать.

Ответ 1

Да, вы можете это сделать. См. Ссылку MySQL (версия 5.5).

Индекс UNIQUE создает ограничение, так что все значения в индексе должны быть разными. Произошла ошибка, если вы попытаетесь добавить новую строку с ключевым значением, которое соответствует существующей строке. Для всех двигателей индекс UNIQUE допускает несколько значений NULL для столбцов, которые могут содержать NULL.

Ответ 2

Да, если вы сделаете столбец кода продукта нулевым (не объявленным с помощью NOT NULL), уникальный ключ будет содержать несколько строк с NULL кодами продуктов.

Ответ 3

MySQL по-прежнему позволяет нескольким строкам иметь значение NULL в уникальном столбце.