2013-12-11 4 views
1

У меня есть таблицы уровней иерархии с 1 по 7 и каждая таблица имеет внешний ключ со столбцом из таблицы следующего уровня.Избегайте ограничений внешнего ключа

Моя задача - вставить данные уровня иерархии в эти таблицы.

Поскольку существуют ограничения внешнего ключа, мне нужно вставить данные в обратном порядке, например, как l7, затем l6, l5, .... до l1.

Купить в одной ситуации, у меня есть данные только l3, l2, l1 ..

Теперь проблема есть - для вставки l3 у меня нет данных для l4.

поэтому я получаю ошибку ограничения.

Cannot add or update a child row: a foreign key constraint fails 

Как избежать этой ошибки.

+0

Pl. сообщение в dba.stackexchange.com –

ответ

1

В Mysql

SET FOREIGN_KEY_CHECKS=0; 

Это сеанс на основе личных данных.

Это временно нарушает ограничение внешнего ключа. Иногда необходимо изменить данные таким образом, чтобы ссылочная целостность была нарушена во время процесса модификации.

Для больше деталей http://www.sqlines.com/mysql/set_foreign_key_checks

http://dev.mysql.com/doc/refman/5.1/en/server-system-variables.html#sysvar_foreign_key_checks

0

Если я правильно понял, у вас есть отношения в соответствии с вашим примером, у I3 есть столбец, который ссылается на I4, этот столбец является внешним ключом. Теперь, если у вас нет значения внешнего ключа при вставке I3, вы можете вставить нуль в этот столбец внешнего ключа.

Не очень уверен, что ответ на ваш вопрос.

Смежные вопросы