@KirylLapouski

Как удалить запись из таблицы, на которую есть ссылка?

Есть таблиц Staff, на которую ссылается много других таблиц. При попытке удалить запись из таблицы Person вываливается ошибка. Как исправить сие недрозумение?
Скрипт удаления
use medicine;
DELETE FROM staff WHERE id = 1;

Ошибка
Cannot delete or update a parent row: a foreign key constraint fails (`medicine`.`medical_facility`, CONSTRAINT `fk_id_doctor_department` FOREIGN KEY (`id_order_doctor`) REFERENCES `staff` (`id`))
  • Вопрос задан
  • 2888 просмотров
Решения вопроса 1
@mletov
А связанные записи из staff и прочих таблиц вы тоже пытаетесь удалить каскадом?

1) Если нет - то тогда разберитесь с целостностью, поставьте NULL во всех полях внешних ключей записей, привязанных к удаляемой

2)Если же удаление каскадное, со всеми связанными полями в других таблицах
https://roothelp.ru/lessons/kaskadnoe_udalenie_na_mysql
Проверьте, есть ли опция ON DELETE CASCADE у всех полей с внешними ключами удаляемой записи.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@Gesparo
Fullstack разработчик
Трудно ответить на такой вопрос, так как мало данных. Но ошибка явно во внешних ключах. Как то они неправильно настроены. Имеет смысл открыть схему структуры бд через mysql workbanch и детально во всем разобраться. Так же хочу обратить внимание на то, что там вываливается не просто ошибка, а конкретно какая то ошибка, с кодом и описанием проблемы. И стоит в ней для начала разобраться, это поможет выявить из за чего появляется конфликт.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы