2010-10-02 3 views
0

У меня возникли проблемы с редактированием данных в mysql с помощью клавиш foreigh. При попытке обновить внешний ключ, он говорит:ограничение внешнего ключа

Невозможно добавить или обновить дочернюю строку: ограничение внешнего ключа не удается (sadsystem/products, скованность fk_ProductRelationship11 FOREIGN KEY (size_id) Лит product_sizes (size_id))

ответ

1

Стандартный способ сделать это: SET CONSTRAINTS DEFERRED.

Однако MySQL/InnoDB этого не поддерживает. Вам нужно будет отредактировать свои данные в порядке последовательности: то есть сначала вам нужно создать целевую строку в product_sizes, прежде чем вы сможете обратиться к ее size_id из других таблиц.

(Если вы уверены, что вы знаете, что вы делаете (например, при импорте данных), можно временно отключить параметр foreign_key_checks, но это не проверки ссылочной целостности при повторном включении его: любые ограничения, которые были сломаны, когда он был отключен, будут оставаться сломанными.)

+0

пожалуйста, просветите меня больше. Я плохо разбираюсь в mysql. Я делаю это из-за своей части моего второстепенного предмета программирования. как я могу сделать это в phpmyadmin? –

0

Когда вы обновляете столбец, который является частью (или всем) внешнего ключа, новое значение полного внешнего ключа должно ссылаться на строку в ссылочной таблице , В сообщении об ошибке говорится, что вы пытаетесь обновить внешний ключ до значения, которого нет в ссылочной таблице.

+0

Я действительно запутался прямо сейчас. вы можете увидеть мой подробный вопрос относительно редактирования внешних ключей. пожалуйста, найдите время, чтобы прочитать и изучить коды, которые я разместил там. большое спасибо –

+0

http://stackoverflow.com/questions/3844591/inner-join-passing-data-from-table-for-edit –

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