Каковы соответствующие конфиги в MySQL для поведения удаления в PostgreSQL для CASCADE, RESTRICT, NO ACTION, SET NULL, SET DEFAULT - PullRequest
1 голос
/ 26 февраля 2020

У меня есть опыт работы с Postgres и их поведением удаления для ссылок на внешние ключи (цитата из PostgreSQL документов ):

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

Существуют ли соответствующие конфиги для всех этих поведений также в MySQL ? Я просматривал документы , но не нашел ничего полезного ...

1 Ответ

1 голос
/ 26 февраля 2020

Вы можете найти mysql документы здесь:

https://dev.mysql.com/doc/refman/8.0/en/create-table-foreign-keys.html

reference_option:
    RESTRICT | CASCADE | SET NULL | NO ACTION | SET DEFAULT
...