Что значит режим MySQL NO_ENGINE_SUBSTITUTION?
В официальной доке сказано:
Control automatic substitution of the default storage engine when a statement such as CREATE TABLE or ALTER TABLE specifies a storage engine that is disabled or not compiled in.
By default, NO_ENGINE_SUBSTITUTION is enabled.
Because storage engines can be pluggable at runtime, unavailable engines are treated the same way:
With NO_ENGINE_SUBSTITUTION disabled, for CREATE TABLE the default engine is used and a warning occurs if the desired engine is unavailable. For ALTER TABLE, a warning occurs and the table is not altered.
With NO_ENGINE_SUBSTITUTION enabled, an error occurs and the table is not created or altered if the desired engine is unavailable.
Но мне так и не стало ясно что это и для чего.
Объясните, кто действительно знает, простым и понятным языком предназначение этого режима, можно с примерами. Спасибо.
Представьте, что вы делаете некую операцию, влияющую на тип таблицы (движок, механизм хранения, ENGINE), устанавливая его при CREATE TABLE или изменяя при ALTER TABLE.
Возможны варианты:
NO_ENGINE_SUBSTITUTION отключен - будет использован тип таблиц по умолчанию (для CREATE TABLE) либо запрос не будет выполнен (для ALTER TABLE), но в любом случае ошибки не возникнет (зато будет выдано предупреждение).NO_ENGINE_SUBSTITUTION включен - операция не будет выполнена, будет выдано сообщение об ошибке.P.S. Отключенный/недоступный тип таблиц нельзя сделать дефолтным. Дефолтный тип таблиц нельзя отключить.
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости