innodb_strict_mode - xiaoboluo768/qianjinliangfang GitHub Wiki

  • 是否启用innodb严格模式,当启用innodb_strict_mode时,InnoDB在某些条件下返回错误而不是警告
    • 严格模式有助于防止在SQL中被忽略的错字和语法错误,或操作模式和SQL语句的可能导致其他意外后果各种组合的。当启用innodb_strict_mode时,InnoDB会在某些情况下报错,而不是发出警告并执行语句(执行这些语句可能导致不搭预期的意外的结果),这类似于MySQL中的sql_mode,它控制MySQL接受的SQL语法,并决定是忽略错误还是验证输入语法和数据值
    • innodb_strict_mode设置会影响CREATE TABLE,ALTER TABLE和CREATE INDEX语句的语法错误的处理, innodb_strict_mode还启用行记录大小检查(在使用INSERT或UPDATE操作时)
    • 在CREATE TABLE,ALTER TABLE和CREATE INDEX语句中使用ROW_FORMAT和KEY_BLOCK_SIZE子句时,Oracle建议启用innodb_strict_mode。当innodb_strict_mode被禁用时,InnoDB将忽略冲突的子句,并在错误日志中只记录一个警告。但是这使得创建的表可能不达预期,例如在尝试创建压缩表时缺乏压缩支持。当启用innodb_strict_mode时,此类问题会立即报错,并且拒绝创建表或索引
    • 全局,会话,动态变量,布尔值,默认值5.6.x版本中默认为OFF,5.7.6及其之前的5.7.x版本默认为OFF,5.7.7及其之后的版本默认为ON

上一篇:innodb_table_locks | 下一篇:innodb_undo_log_truncate