Mysql服务器的sql模式

上一篇 / 下一篇  2013-02-28 11:55:07 / 个人分类:Mysql

  • Mysql服务器有一个名为sql_mode的系统变量可以让你调控其sql模式,各个客户可以通过改变这个模式来影响它们对Mysql服务器的连接,这意味着任何一个客户都可以在不影响其他客户的前提下改变mysql服务器对自己的反应
    • STRICT_ALL_TABLES和STRICT_TRANS_TABLES将启用严格模式。Mysql服务器在接受“坏”数据值方面讲更加严格
    • TRADITIONAL是另一种复合模式,类似于严格模式,单启用了其他几种引入额外限制条件的模式以进行更加严格的数据检查
    • ANSI_QUOTES告诉Mysql服务器把双引号识别为一个标示符引用字符(启用了ANSI_QUOTES还有一个额外的效果--字符串值必须用单引号写出,如果使用双引号,mysql服务器将把该值解释为标示符而不是字符串)
    • PIPES_AS_CONCAT将导致“||”字符串被视为一个标准的SQL字符串合并操作,而不是“OR”操作的一个同义词
    • ANSI是一种复合模式,它将同时启用ANSI_QUOTES、PIPES_AS_CONCAT和另外几种模式值,其结果是让Mysql服务器的行为比它默认运行状态更接近于标准SQL
    • IGNORE_SPACE内建函数名将视为保留字
               实现方法
    • 可以在mysqld命令上或是某个选项文件里使用sql_mode选项(--sql-mode="TRADITIONAL,PIPES_AS_CONCAT")
    • 可以在运行时改变sql模式,可以使用条set语句来设置sql_mode系统变量(SET sql_mode="TRADITIONAL,PIPES_AS_CONCAT")
    • 如果需要对sql模式做全局性设置,需要加上global关键字(SET GLOBAL sql_mode="TRADITIONAL,PIPES_AS_CONCAT")设置全局变量需要具备super管理权限,新设置值将成为此后连接的所有客户的模式sql模式
    • 如果想知道会话级或全局级sql模式的当前值(select @@session.sql_mode,@@global.sql_mode;)

TAG:

 

评分:0

我来说两句

Open Toolbar