ON DELETE
и ON UPDATE
относятся к тому, как изменения, вносимые вами в таблицу ключей, распространяются на зависимую таблицу.ОБНОВЛЕНИЕ означает, что значения ключей изменяются в зависимой таблице для поддержания отношения, а УДАЛЕНИЕ означает, что зависимые записи удаляются для поддержания целостности.
Пример: скажем, у вас есть
Users: Name = Bob, Department = 1
Users: Name = Jim, Department = 1
Users: Name = Roy, Department = 2
и
Departments: id = 1, Name = Sales
Departments: id = 2, Name = Bales
Теперь, если вы измените таблицу deparments, чтобы изменить первую запись для чтения id = 5, Name = Sales
, то с помощью «UPDATE» вы также изменили бы первые две записи на чтение Department = 5
- и без«ОБНОВЛЕНИЕ», вам не разрешено вносить изменения!
Аналогично, если вы удалили Отдел 2, то с помощью «УДАЛИТЬ» вы также удалили бы запись для Роя!А без «УДАЛИТЬ» вам не разрешили бы удалить отдел, предварительно не удалив Роя.