Ответ 1
Перед тем, как выполнить запрос
SET FOREIGN_KEY_CHECKS=0
затем установите значение 1 после того, как сделаете.
Я получаю эту ошибку:
1452 - Невозможно добавить или обновить дочернюю строку: ограничение внешнего ключа выходит из строя.
Я нашел их и попытаюсь избавиться от ссылок с помощью
alter table tillhör drop foreign key kat_id;
Но вместо этого получим эту ошибку:
# 1025 - Ошибка при переименовании '.\recept\tillh @1ir' в '.\recept # sql2-1570-3cb' (errno: 152).
Что я делаю неправильно?
Перед тем, как выполнить запрос
SET FOREIGN_KEY_CHECKS=0
затем установите значение 1 после того, как сделаете.
У меня такая же проблема. Я решаю эту проблему, очищая, т.е. Удаляя все данные из дочерней таблицы и успешно выполняемые.
Это происходит, если дочерняя таблица содержит некоторые данные с внешним ключом, которые не находятся в родительской таблице, т.е. если есть две таблицы с именем Лицо (с идентификатором столбца, именем, адресом) и порядок (с идентификатором столбца, person_id, order_name); order.person_id - это внешний ключ person.id и таблица заказа содержат person_id, который отсутствует в таблице.
Вы можете решить эту проблему, используя следующий запрос
Delete from order where person_id NOT IN (select id from person where person.id = order.person_id)
Когда у меня возникла эта проблема, это было связано с тем, что я забыл указать NULLS, разрешенные при создании полей идентификатора внешнего ключа. Я изменил его после факта, но 0 уже были в ценности. Он не смог найти 0 в таблице соответствия, а затем дал эту ошибку. Исправление: обновите нулевые значения до нулей.
Вы должны установить для него значения null от родительского к дочерним таблицам Или установите одинаковые значения, например Детский стол first nam = Derick Имя родительской таблицы = Derick