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

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

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

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

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

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

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

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

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

  • Как обрезать таблицу с ограниченным внешним ключом?
  • Аннотации из javax.validation.constraints не работают
  • Использование переменной в предложении LIMIT в MySQL
  • Как добавить ненулевое ограничение существующего столбца в MySQL5.1
  • Ограничения на hibernate Ограничения И / ИЛИ комбинация
  • Есть ли общее ограничение, которое я мог бы использовать для оператора +?
  • Как разрешить ввод только цифр в jTextField?
  • Есть ли ограничение, которое ограничивает мой общий метод численными типами?
  • F # Статические ограничения типа пользователя
  • Любопытно повторяющиеся шаблоны шаблонов и ограничений генериков (C #)
  • Пружины в автоматическом макете: равномерно распределять представления с ограничениями в Xcode 5
  • Давайте будем гением компьютера.