sql_mode的系统变量可以调控mysql的sql模式
任何一个客户端可以在不影响其它客户端的情况下改变mysql服务器对自己的反应
如果想在mysql启动时设置sql模式,可以在mysql配置文件中添加sql_mode选项
sql-mode=”traditional”
如果在运行过程中修改sql模式,则可以使用如下命令
setsql_mode=traditional;
client1
mysql> show variables like sql_mode;
+---------------+-------+
| variable_name | value |
+---------------+-------+
| sql_mode||
+---------------+-------+
1 row in set (0.00 sec)
mysql> set sql_mode=traditional;
query ok, 0 rows affected(0.23 sec)
mysql> show variables like sql_mode;
+---------------+---------------------------------------------------------------------------------------------------------
|variable_name |value |
+---------------+-----------------------------------------------------------------------------------------------------------
|sql_mode|strict_trans_tables,strict_all_tables,no_zero_in_date,no_zero
_date,error_for_pision_by_zero,traditional,no_auto_create_user,no_
engine_substitution|
+---------------+------------------------------------------------------------------------------------------------------------
1 rowin set (0.00 sec)
mysql>
client2
client1已经修改了sql模式,但是client2的sql模式没有改变,这就说明客户端之间的模式修改
是互相不影响的
mysql> show variables like sql_mode;
+---------------+-------+
| variable_name | value |
+---------------+-------+
| sql_mode||
+---------------+-------+
1 row in set (0.00 sec)
mysql>
设置全局变量(设置全局变量设置,需要加上global关键字,需要super权限)
mysql> set globalsql_mode=traditional;
query ok, 0 rows affected(0.02 sec)
select@@session.sql_mode --》查看当前会话sql模式
select@@global.sql_mode --》查看系统会话sql模式
设置全局变量后,新连接的客户端默认的就是全局的sql模式
bitscn.com
