Разница между CASCADE и SET NULL при удалении внешнего ключа заключается в следующих действиях:
- CASCADE. metanit.com habr.com При удалении или обновлении записи в таблице-предке, которая содержит первичный ключ, автоматически удаляются или обновляются записи со ссылками на это значение в таблице-потомке. habr.com
- SET NULL. habr.com При удалении или обновлении записи в таблице-предке, которая содержит первичный ключ, значения внешнего ключа в таблице-потомке устанавливаются в NULL. habr.com Для этого необходимо, чтобы столбец внешнего ключа допускал значение NULL. metanit.com
Таким образом, CASCADE позволяет при удалении строки из главной таблицы автоматически удалить все связанные строки из зависимой таблицы, а SET NULL устанавливает для столбца внешнего ключа значение NULL при удалении или обновлении связанной строки из главной таблицы. metanit.com