MySQL服务器的SQL模式

 sql_mode的系统变量可以调控MySQL的SQL模式

任何一个客户端可以在不影响其它客户端的情况下改变MySQL服务器对自己的反应

如果想在MySQL启动时设置SQL模式,可以在mysql配置文件中添加sql_mode选项

sql-mode=”TRADITIONAL”

如果在运行过程中修改SQL模式,则可以使用如下命令

setsql_mode="TRADITIONAL";

 

Client1

  
  
  
  
  1. mysql> show variables like "sql_mode"
  2.  
  3. +---------------+-------+ 
  4.  
  5. | Variable_name | Value | 
  6.  
  7. +---------------+-------+ 
  8.  
  9. | sql_mode      |      | 
  10.  
  11. +---------------+-------+ 
  12.  
  13. 1 row in set (0.00 sec) 
  14.  
  15.   
  16.  
  17. mysql> set sql_mode="TRADITIONAL"
  18.  
  19. Query OK, 0 rows affected(0.23 sec) 
  20.  
  21.   
  22.  
  23. mysql> show variables like "sql_mode"
  24.  
  25. +---------------+------------------------------------------------------------------------------------------------------------------------------------------------------+ 
  26.  
  27. |Variable_name     |                                                                Value                                                                                                                                               | 
  28.  
  29. +---------------+------------------------------------------------------------------------------------------------------------------------------------------------------+ 
  30.  
  31. |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| 
  32.  
  33. +---------------+------------------------------------------------------------------------------------------------------------------------------------------------------+ 
  34.  
  35. 1 rowin set (0.00 sec) 
  36.  
  37.   
  38.  
  39. mysql> 

Client2

Client1已经修改了SQL模式,但是Client2的SQL模式没有改变,这就说明客户端之间的模式修改是互相不影响的

  
  
  
  
  1. mysql> show variables like "sql_mode"
  2.  
  3. +---------------+-------+ 
  4.  
  5. | Variable_name | Value | 
  6.  
  7. +---------------+-------+ 
  8.  
  9. | sql_mode      |      | 
  10.  
  11. +---------------+-------+ 
  12.  
  13. 1 row in set (0.00 sec) 
  14.  
  15.   
  16.  
  17. 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模式

你可能感兴趣的:(oracle,mysql,数据库)