Некоторые стратегии обработки изменений в связанных таблицах при использовании внешних ключей:
- CASCADE. 34 При обновлении или удалении записей в родительской таблице аналогичные действия выполняются в связанных таблицах. 3
- RESTRICT. 3 Используется, когда нужно не допустить удаление записи в родительской таблице при наличии связанных записей в дочерних таблицах. 3
- SET NULL. 3 При обновлении или удалении записей в родительской таблице записям дочерней таблицы присваивается нулевое значение. 3 Это возможно, если поля дочерней таблицы это допускают. 3
- NO ACTION. 34 Определяет запрет изменения или удаления записи в родительской таблице при наличии связанных записей в дочерней таблице. 3 Если правило «ON UPDATE» или «ON DELETE» не задано явно при объявлении внешнего ключа, то действует по умолчанию правило «NO ACTION». 3
- SET DEFAULT. 4 При удалении строки из родительской таблицы в поле внешнего ключа всех ссылающихся на неё строк дочерней таблицы автоматически помещается значение, указанное для этого поля как значение по умолчанию. 4
- NO CHECK. 4 При удалении строки из родительской таблицы никаких действий по сохранению ссылочной целостности данных не предпринимается. 4
Выбор стратегии зависит от логики приложения и бизнес-правил. 1