Встречается на собеседованиях • сегодня

Может ли одна из колонок составного Unique Key быть Nullable

Да, может. В составном уникальном ключе (UNIQUE constraint) колонки могут быть NULL, но есть нюансы:

  1. В большинстве СУБД (MySQL, PostgreSQL) несколько NULL-значений считаются разными, поэтому они не нарушают уникальность
  2. В SQL Server NULL = NULL в контексте уникального ключа, поэтому только одна строка с NULL может существовать

Пример для MySQL:

sql
CREATE TABLE users (
    id INT,
    email VARCHAR(255),
    phone VARCHAR(255),
    UNIQUE KEY (email, phone)
);

-- Это допустимо:
INSERT INTO users VALUES (1, 'test@test.com', NULL);
INSERT INTO users VALUES (2, 'test@test.com', NULL);

Но если нужна строгая уникальность включая NULL, можно использовать COALESCE или триггеры.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы