Какой смысл добавлять NOT NULL в поле первичного ключа в MySQL?

Какой смысл добавлять NOT NULL в поле первичного ключа? Первичный ключ уже не нулевой + уникальный.

Вот пример:

CREATE TABLE student (
  id int(11) AUTO_INCREMENT NOT NULL,
  name varchar(255),
  PRIMARY KEY(id)
)

Почему бы не определить это так:

CREATE TABLE student (
  id int(11) AUTO_INCREMENT,
  name varchar(255),
  PRIMARY KEY(id)
)

Ответ 1

Они одинаковы. Первичный ключ автоматически получил NOT NULL.

Ответ 2

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

Ответ 3

NULL не эквивалентен NULL (поскольку NULL указывает неизвестное или отсутствующее значение), поэтому вам будет разрешено иметь несколько записей с NULL для идентификатора, хотя есть первичный ключ/уникальное ограничение, следовательно, использование NOT NULL. Это, если MySql даже позволяет вам определить первичный ключ в поле с нулевым значением.

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