нужно ли объявлять ограничения "NOT NULL" для первичных ключей в базе данных MySQL? Первичный ключ не может иметь значения NULL, так как он автоматически создает и автоматически заполняет запись поля. Так я правильно говорю, что это означает, что я могу удалить ограничение "NOT NULL" для моих первичных ключей?
MySQL. Нужны ли ограничения "NOT NULL" для первичных ключей?
Ответ 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.