У меня есть простая база данных следующим образом. Он отображает сотрудников, в какой отдел (ы) они входят. Когда сотрудник уходит, их записи необходимо удалить из таблицы Employee
и таблицы EmployeeDepartment
. Аналогично, отделы также могут измениться. Когда отдел изменится, запись необходимо будет удалить из таблиц Department
и EmployeeDepartment
.Проблемы с MySQL при удалении из нескольких таблиц
У меня есть запрос, который в основном работает. Тем не менее, я обнаружил некоторые ошибки, когда другие записи начинают удаляться. Я надеялся, что кто-то сможет проверить это для меня.
DELETE e, ed FROM Employee e
INNER JOIN EmployeeDepartment ed ON e.id = ed.id
WHERE ed.id = ?
?
является идентификатор записи Я хочу удалить.
Редактировать
Для дальнейшего объяснения, удаления не будет работать, если идентификатор не в обоих Employee
и Department
. Поэтому, если сотрудник был создан, но еще не назначен отделу, удаление не будет работать.
Вы должны смотреть на внешние ключи, в частности, каскадное удаление. –
У меня нет возможности сделать более предварительную базу данных прямо сейчас ... как бы вы предложили сделать это с помощью соединений? – roundtheworld
У вас есть столбцы «e» и «ed» в той же таблице Employee? –