Spec-Zone .ru
спецификации, руководства, описания, API

14.2.5.7. InnoDB Строгий Режим

Чтобы принять меры против проигнорированных опечаток и синтаксических ошибок в SQL, или других непреднамеренных последствий различных комбинаций операционных режимов и SQL-операторов, InnoDB обеспечивает строгий режим операций. В этом режиме InnoDB повышает состояния ошибки в определенных случаях, вместо того, чтобы выпустить предупреждение и обработку указанного оператора (возможно, с непреднамеренным поведением). Это походит sql_mode в MySQL, который управляет тем, что принимает MySQL синтаксиса SQL, и определяет, игнорирует ли это тихо ошибки, или проверяет входного синтаксиса и значений данных. Начиная с InnoDB строгий режим относительно нов, некоторые операторы, которые выполняются без ошибок с более ранними версиями MySQL, могли бы генерировать ошибки, если Вы не отключаете строгий режим.

Установка InnoDB строгий режим влияет на обработку синтаксических ошибок на CREATE TABLE, ALTER TABLE и CREATE INDEX операторы. Строгий режим также включает проверке размера записи, так, чтобы INSERT или UPDATE никогда не перестал работать из-за записи, являющейся слишком большим для выбранного размера страницы.

Oracle рекомендует включить innodb_strict_mode при использовании ROW_FORMAT и KEY_BLOCK_SIZE пункты на CREATE TABLE, ALTER TABLE, и CREATE INDEX операторы. Без строгого режима InnoDB игнорирует конфликтные пункты и составляет таблицу, или индексируйте с только предупреждением в журнале сообщения. У получающейся таблицы могло бы быть различное поведение, чем Вы предназначали, такие как наличие никакого сжатия, когда Вы попытались составить сжатую таблицу. То, когда InnoDB, строгий режим идет, такие проблемы, генерируют непосредственную ошибку и таблицу или индексируют, не создается, избегая сеанса поиска и устранения неисправностей позже.

InnoDB строгий режим устанавливается с параметром конфигурации innodb_strict_mode, который может быть определен как ON или OFF. Можно установить значение на командной строке, когда Вы запускаете mysqld, или в конфигурационном файле my.cnf или my.ini. Можно также включить или отключить InnoDB строгий режим во времени выполнения с оператором SET [GLOBAL|SESSION] innodb_strict_mode=mode, где mode также ON или OFF. Изменение GLOBAL установка требует SUPER полномочие и влияет на работу всех клиентов, которые впоследствии соединяются. Любой клиент может измениться SESSION установка для innodb_strict_mode, и установка влияет только на тот клиент.