У меня возникают проблемы с редактированием данных в mysql с помощью клавиш foreigh. Когда я пытаюсь обновить внешний ключ, он говорит:
Невозможно добавить или обновить дочернюю строку: сбой ограничения внешнего ключа (
sadsystem/products
, CONSTRAINTfk_ProductRelationship11
ИНОСТРАННЫЙ КЛЮЧ (size_id
) ССЫЛКИproduct_sizes
(size_id
))
Стандартный способ сделать это SET CONSTRAINTS DEFERRED
.
Однако MySQL/InnoDB этого не поддерживает. Вам нужно будет отредактировать свои данные в порядке последовательности: то есть сначала вам нужно создать целевую строку в product_sizes
, прежде чем вы сможете ссылаться на ее size_id
из других таблиц.
(Если вы уверены, что знаете, что делаете (например, при импорте данных), вы также можете временно отключить foreign_key_checks, но при повторном включении он проверяет ссылочную целостность не: любые нарушения, которые были сломаны, когда он был отключен, будут оставаться сломанными.)
Когда вы обновляете столбец, который является частью (или всем) внешнего ключа, новое значение полного внешнего ключа должно ссылаться на строку в ссылочной таблице. В сообщении об ошибке говорится, что вы пытаетесь обновить внешний ключ до значения, которое не существует в ссылочной таблице.