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)
)
Они такие же. Первичный ключ получил NOT NULL
автоматически .
NULL
не эквивалентно NULL
(поскольку NULL
указывает на неизвестное или отсутствующее значение), поэтому вам будет разрешено иметь несколько записей с NULL
для идентификатора, даже если определено ограничение первичного ключа / уникальности, поэтому используется NOT NULL
. Это если MySql даже позволяет вам определять первичный ключ в поле, допускающем значение NULL.
Кроме того, поскольку первичный ключ часто используется во внешнем ключе других таблиц, одно или несколько значений NULL
не имеют смысла.
Вы спрашиваете, почему люди пытаются добавить NOT NULL, если в нем нет необходимости? Думаю, это просто потому, что это хороший стиль. И делает это понятным для читателя.