当前位置:首页 » MySQL » MySQL学习笔记(8):SQL Mode » 正文


MySQL学习笔记(8):SQL Mode

发布日期:2014-10-09 00:30   来源:谭海波   本文永久链接
摘要:与其他数据库不同的是,MySQL支持运行不同的SQL Mode,它定义了应支持的SQL语法、数据校验等,这样可以更容易滴在不同的环境中使用MySQL。 通过设置SQL Mode,可以完成不同严格程度的数据校验,有效地保障数据准确性。 通过设置SQL Mode为ANSI模式,……

与其他数据库不同的是,MySQL支持运行不同的SQL Mode,它定义了应支持的SQL语法、数据校验等,这样可以更容易滴在不同的环境中使用MySQL。

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

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

在不同数据库之间进行数据库迁移之前,通过设置SQL Mode可以使MySQL上的数据更加方便地迁移到目标数据库中。

查看当前连接的SQL Mode:select @@sql_mode;。

查看全局连接的SQL Mode: select @@global.sql_mode;。

通过设置SQL Mode为STRICT_TRANS_TABLES(严格模式)可以帮助验证数据长度。

通过设置SQL Mode为TRADITIONAL可以校验合法的日期格式。

通过设置SQL Mode为NO_BACKSLASH_ESCAPES可以使反斜线成为普通字符。

通过设置SQL Mode为PIPES_AS_CONCAT可以使||成为字符串连接操作符。

在进行数据库迁移的过程中,应该注意哪些SQL Mode问题呢,额,这还真是一个问题。见下列详情:

如果是MySQL迁移到Oracle,应该选择的SQL Mode:PIPES_AS_CONCAT、ANSI_QUOTES、IGNORE_SPACE、NO_KEY_OPTIONS、NO_TABLE_OPTIONS、NO_FIELD_OPTIONS、NO_AUTO_CREATE_USER。

如果是MySQL迁移到SQL Server,应该选择的SQL Mode:PIPES_AS_CONCAT、ANSI_QUOTES、IGNORE_SPACE、NO_KEY_OPTIONS、NO_TABLE_OPTIONS、NO_FIELD_OPTIONS。

如果是MySQL迁移到DB2,应该选择的SQL Mode:PIPES_AS_CONCAT、ANSI_QUOTES、IGNORE_SPACE、NO_KEY_OPTIONS、NO_TABLE_OPTIONS、NO_FIELD_OPTIONS。



关注谭海波博客官方微信公众平台
文章分类MySQL
文章标签:
本文永久链接:http://tanhaibo.net/2014/10/mysql-sqlmode.html
转载提示:除非注明,谭海波博客的文章均为原创,转载请以链接形式注明作者和出处。谢谢合作!

发表评论

电子邮件地址不会被公开。 必填项已用*标注