sql_mode的系統變量可以調控MySQL的SQL模式
任何一個客戶端可以在不影響其它客戶端的情況下改變MySQL服務器對自己的反應
www.2cto.com
如果想在MySQL啟動時設置SQL模式,可以在mysql配置文件中添加sql_mode選項
sql-mode=”TRADITIONAL”
如果在運行過程中修改SQL模式,則可以使用如下命令
setsql_mode="TRADITIONAL";
www.2cto.com
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_DIVISION_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模式