Разница между ON DELETE RESTRICT и ON DELETE CASCADE заключается в поведении при удалении данных в связанных таблицах. 12
ON DELETE RESTRICT предотвращает какие-либо действия в зависимой таблице при удалении или изменении связанных строк в главной таблице. 1 То есть фактически какие-либо действия отсутствуют. 1 Если в таблице-потомке есть записи, которые ссылаются на существующий первичный ключ в таблице-потомке, то при удалении или обновлении записи с первичным ключом в таблице-предке возвратится ошибка. 4
ON DELETE CASCADE автоматически удаляет или изменяет строки из зависимой таблицы при удалении или изменении связанных строк в главной таблице. 1 Например, если удалить категорию, то удалятся и все вещи, относящиеся к этой категории в таблице вещей. 4
Выбор между этими опциями зависит от того, какие объекты представляют связанные таблицы. 2 Если это компоненты одного объекта, которые не могут существовать независимо, то подходит CASCADE. 2 Если же таблицы представляют независимые объекты, то более подходящим будет RESTRICT или NO ACTION. 2