У меня есть опыт работы с Postgres и их поведением удаления для ссылок на внешние ключи (цитата из PostgreSQL документов ):
NO ACTION
(по умолчанию): Если какие-либо ссылочные строки все еще существуют при проверке ограничения, возникает ошибка RESTRICT
: Предотвращает удаление ссылочной строки. Существенное различие между этими двумя вариантами состоит в том, что NO ACTION
позволяет отложить проверку до более поздней стадии транзакции, тогда как RESTRICT
- нет. CASCADE
: при удалении указанной строки строка ( s) ссылка на него также должна быть автоматически удалена. SET NULL
: устанавливает для столбцов ссылки значение NULL
при удалении указанной строки. SET DEFAULT
: причины ссылочные столбцы должны быть установлены в значения по умолчанию при удалении указанной строки. Обратите внимание, что это не освобождает вас от соблюдения каких-либо ограничений. Например, если действие указывает SET DEFAULT
, но значение по умолчанию не будет удовлетворять внешнему ключу, операция завершится ошибкой.
Существуют ли соответствующие конфиги для всех этих поведений также в MySQL ? Я просматривал документы , но не нашел ничего полезного ...