page contents

MySQL中SQL Mode的作用是什么?

轩辕小不懂 发布于 2022-03-17 15:38
阅读 422
收藏 0
分类:数据库
3315
Nen
Nen
- 程序员

SQL Mode(模式)定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。SQL Mode常用来解决下面几类问题:

1)通过设置SQL Mode,可以完成不同严格程度的数据校验,有效地保障数据准确性。

2)通过设置SQL Mode为ANSI模式,来保证大多数SQL符合标准的SQL语法,这样应用在不同数据库之间进行迁移时,就不需要对业务SQL进行较大的修改。

3)在不同数据库之间进行数据迁移之前,通过设置SQL Mode可以使MySQL上的数据更方便地迁移到目标数据库中。SQL Mode由参数sql_mode来设置,可以在配置文件my.cnf中设置,也可在客户端中进行设置。此外,这个参数还可分别进行全局的设置或当前会话的设置,也可以在MySQL启动时设置(--sql-mode=”modes”)。

示例如下:

attachments-2022-03-fvdnebTh6232e803e7249.png

查看sql_mode的当前值:

attachments-2022-03-RdJOUiSh6232e82b89258.png

在MySQL 5.7和8.0中,默认的sql_mode的值为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 5.6中,默认的sql_mode的值为NO_ENGINE_SUBSTITUTION;在MySQL 5.5中,默认的sql_mode的值为空。

attachments-2022-03-0TKKv8JN6232e85baa10f.png



请先 登录 后评论