之前简单整理了一下MYSQL的 sql_mode
的设置,宋老师给备注评论了一下,特此感谢!
sql
1 | SELECT @@SESSION.sql_mode; |
这种方式,查询的是SESSION
级别的sql_mode
,在SESSION
关闭后,设置会失效
sql
1 | SELECT @@GLOBAL.sql_mode; |
这种方式,查询的是GLOBAL
级别的sql_mode
,在SESSION
关闭后,设置的sql_mode
不会失效,但是当MYSQL重启后,设置会失效
总结:
SET SESSION
,SESSION
结束后关闭,就会丢失修改SET GLOBAL
,在MYSQL重启后,会丢失设置- 修改
mysqld
,在mysqld
一节下增加sql_mode
配置,这种方式,重启都不会丢失修改 (但是线上数据库,很少有机会这样修改配置并重启,这种方式,很少有机会用到) - 代码级别指定,在创建
MYSQL CONNECTION
时,指定sql_mode
, 这种类似于SESSION
,每次都是new session
总而言之!宋老师优秀!