Разница между ограничениями ON DELETE NO ACTION и CASCADE в SQL заключается в том, что они определяют разные действия при удалении связанной строки из главной таблицы: 1
- ON DELETE NO ACTION предотвращает какие-либо действия в зависимой таблице при удалении или изменении связанных строк в главной таблице. 1 То есть фактически какие-либо действия отсутствуют. 1 Ограничение применяется в конце транзакции. 4 Если какие-либо другие операторы внутри неё решают проблему (например, удаляют дочерние строки), действие удаления может продолжиться без возникновения ошибки. 4
- CASCADE автоматически удаляет или изменяет строки из зависимой таблицы при удалении или изменении связанных строк в главной таблице. 1 Например, если удалить категорию, то удалятся и все вещи, относящиеся к этой категории в таблице вещей. 3 Если обновить идентификатор у категории, то у вещей, которые ссылались на эту категорию, идентификатор также изменится на новый. 3