• Mysql各版本sql_mode说明


    版本差异

    MySQL 5.5:空
    MySQL 5.6:NO_ENGINE_SUBSTITUTION
    MySQL 5.7:ONLY_FULL_GROUP_BY, STRICT_TRANS_TABLES, NO_ZERO_IN_DATE, NO_ZERO_DATE, ERROR_FOR_DIVISION_BY_ZERO, NO_AUTO_CREATE_USER, NO_ENGINE_SUBSTITUTION
    MySQL 8.0:ONLY_FULL_GROUP_BY, STRICT_TRANS_TABLES, NO_ZERO_IN_DATE, NO_ZERO_DATE, ERROR_FOR_DIVISION_BY_ZERO, NO_ENGINE_SUBSTITUTION

    详细说明
    ONLY_FULL_GROUP_BY
    对于GROUP BY聚合操作,如果在SELECT中的列,没有在GROUP BY中出现,那么这个SQL是不合法的,因为列不在GROUP BY从句中

    STRICT_TRANS_TABLES
    该选项针对事务性存储引擎生效,对于非事务性存储引擎无效,该选项表示开启strict sql模式。在strict sql模式下,在INSERT或者UPDATE语句中,插入或者更新了某个不符合规定的字段值,则会直接报错中断操作

    NO_ZERO_IN_DATE
    MySQL中插入的时间字段值,不允许日期和月份为零

    NO_ZERO_DATE
    MySQL中插入的时间字段值,不允许日期为零

    ERROR_FOR_DIVISION_BY_ZERO
    INSERT或者UPDATE语句中,如果数据被0除,则出现警告(非strict sql模式下)或者错误(strict sql模式下)。
    当该选项关闭时,数字被0除,得到NULL且不会产生警告
    当该选项开启且处于非strict sql模式下,数字被0除,得到NULL但是会产生警告
    当该选项开启且处于strict sql模式下,数字被0除,产生错误且中断操作

    NO_AUTO_CREATE_USER
    之前版本中使用GRANT语法,如果用户不存在则会自动创建用户,该选项限制该功能

    NO_ENGINE_SUBSTITUTION
    在使用CREATE TABLE或者ALTER TABLE语法执行存储引擎的时候,如果设定的存储引擎被禁用或者未编译,会产生错误。


    作者:旧旧的 <393210556@qq.com> 摈弃世俗浮躁,追求技术精湛
  • 相关阅读:
    置换笔记
    7.23
    Conveyor Belts
    CF #134 A~D
    Blocks && Fixing the Great wall
    Kakuro
    Deadlock Detection
    关于KeyFile的破解,含注册机源代码
    BMP位图之代码实现
    BMP位图之8位位图(三)
  • 原文地址:https://www.cnblogs.com/widgetbox/p/16011879.html
Copyright © 2020-2023  润新知