Может ли Primary Key быть Null

«Может ли Primary Key быть Null» — вопрос из категории Базы данных и SQL, который задают на 24% собеседований AQA / Automation. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Нет, Primary Key не может быть NULL. По определению, Primary Key должен быть уникальным и непустым (NOT NULL) для каждой записи в таблице. Это гарантирует, что каждая строка может быть однозначно идентифицирована.

Пример с SQL:

CREATE TABLE users (
    id INT PRIMARY KEY,  -- автоматически NOT NULL
    name VARCHAR(100)
);

Если попытаться вставить NULL в Primary Key:

INSERT INTO users (id, name) VALUES (NULL, 'John');  -- вызовет ошибку

Для создания составного Primary Key из нескольких полей ни одно из этих полей не может содержать NULL:

CREATE TABLE orders (
    user_id INT NOT NULL,
    order_id INT NOT NULL,
    PRIMARY KEY (user_id, order_id)
);