Подтвердить что ты не робот

MySQL. Нужны ли ограничения "NOT NULL" для первичных ключей?

нужно ли объявлять ограничения "NOT NULL" для первичных ключей в базе данных MySQL? Первичный ключ не может иметь значения NULL, так как он автоматически создает и автоматически заполняет запись поля. Так я правильно говорю, что это означает, что я могу удалить ограничение "NOT NULL" для моих первичных ключей?

4b9b3361

Ответ 1

(Как вы отметили свой вопрос mysql.) В MySQL вам не нужно делать это явно. Из руководство:

A PRIMARY KEY - уникальный индекс, где все ключевые столбцы должны быть определены как NOT NULL. Если они явно не объявлены как NOT NULL, MySQL объявляет их так неявно (и молча).

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

Ответ 2

Да и нет Вы можете удалить "Not null", но не удалите ограничение. Лично я оставлю их, вы ничего не выиграете от их вынимания.

Ответ 3

Первичный ключ не должен содержать столбцы с нулевым значением. auto_increment не является проверочным ограничением (это скорее ограничение по умолчанию), поэтому вы не можете удалить not null из определения столбца, который является частью первичного ключа, независимо от наличия auto_increment. Вам не нужно вводить not null при создании таблицы для первичного ключа в mysql, потому что двигатель автоматически добавляет это ограничение.

Ответ 4

Нам не нужно явно объявлять столбец как null, потому что ограничение первичного ключа делает столбец NOT NULL. Я проверил в Oracle.