Перейти к содержимому
Ошибки SQL/баз данныхОшибка
23503

23503 — Нарушение внешнего ключа

Операция INSERT или UPDATE нарушает ограничение внешнего ключа.

postgresql

Что вызывает эту ошибку

Ссылаемая строка отсутствует в родительской таблице, или удаляется родительская строка, на которую ещё ссылаются дочерние записи.

Как исправить

Убедитесь в существовании ссылаемой записи перед вставкой. Используйте ON DELETE CASCADE или SET NULL. Вставляйте родительские записи раньше дочерних.

Пример

-- foreign_key_violation
INSERT INTO orders (user_id) VALUES (99999);
-- user_id 99999 does not exist in users table
Официальная документация

Связанные коды ошибок