create table test (
myint INT NULL, UNIQUE INDEX (myint)
);
Это позволит использовать уникальное ограничение для любых добавленных целых чисел, но позволит ввести несколько значений NULL.
MySQL рассматривает NULL как «неизвестное» значение, поэтому, возможно, не может выполнить сравнение, чтобы увидеть, существует ли подобное значение «неизвестно»! == «неизвестно».
Это также зависит от того, какой движок базы данных вы используете, приведенное выше справедливо для MyISAM и InnoDB