Отличие операторов RESTRICT и NO ACTION в MySQL
В чем отличие RESTRICT от NO ACTION в mySQL (при использовании внешнего ключа)?
Источник: Stack Overflow на русском
В чем отличие RESTRICT от NO ACTION в mySQL (при использовании внешнего ключа)?
Изначально в стандартном SQL:
NO ACTION
— при удалении или обновлении записей из таблицы предке
связи с таблицами потомками игнорируются, до закрытия транзакции. Таким образом, внутри одной транзакции можно сначала обновить или удалить записи в таблице предке, до внесения изменений в таблицы потомки. Работает это только с отложенными ключами.RESTRICT
— при попытке удаления или обновления записей из таблицы предка,
при наличии связанных записей в таблице потомка будет выдана ошибка.Но в MySQL параметры RESTRICT
и NO ACTION
идентичны.
https://dev.mysql.com/doc/refman/5.7/en/create-table-foreign-keys.html