What's the point of adding NOT NULL to primary key field in MySQL?

What's the point of adding NOT NULL to a primary key field? Primary key is already not null + unique.

Here is an example:

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

Why not to define it like this instead:

CREATE TABLE student (
  id int(11) AUTO_INCREMENT,
  name varchar(255),
  PRIMARY KEY(id)
)
12
задан informatik01 16 May 2019 в 21:15
поделиться

3 ответа

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

15
ответ дан 2 December 2019 в 06:25
поделиться

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

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

4
ответ дан 2 December 2019 в 06:25
поделиться

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

5
ответ дан 2 December 2019 в 06:25
поделиться
Другие вопросы по тегам:

Похожие вопросы: