DBAtlas · Атлас эксплуатации баз данных

547: Оператор INSERT/UPDATE/DELETE конфликтует с ограничением FOREIGN KEY / CHECK

SQL Server

Что это значит?

Оператор нарушил ограничение FOREIGN KEY или CHECK. Он либо сослался на несуществующую родительскую строку, либо записал значение, нарушающее правило CHECK, либо попытался удалить родительскую строку, на которую ещё есть ссылки.

Почему возникает?

FK: родительская строка, на которую ссылается вставленная дочерняя строка, не существует. DELETE/UPDATE: от удаляемой/изменяемой родительской строки зависят дочерние строки. CHECK: значение столбца не удовлетворяет заданному условию.

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

Сначала вставьте родительскую строку, затем дочернюю. При удалении сначала удалите зависимые строки или, где уместно, определите ON DELETE CASCADE. При нарушении CHECK приведите значение в соответствие с правилом. Определите нарушенное ограничение по его имени в тексте ошибки.

Открыть в DBAtlas →

Ещё по этой СУБД