之前生産環境配置文件裡的sql_mode有個模式ONLY_FULL_GROUP_BY,其意思是:
對于GROUP BY聚合操作,如果在SELECT中的列,沒有在GROUP BY中出現,那麼将認為這個SQL是不合法的,因為列不在GROUP BY從句中。
如果自己sql中有group by,那就要注意了,今天順便總結下關于sql_mode模式方面的内容,也做個備忘!
mysql5.0以上版本支持三種sql_mode模式:
這個sql_mode簡而言之就是:它定義了你MySQL應該支持的sql語法,對數據的校驗等等。。
如何查看當前數據庫使用的sql_mode:mysql> select @@sql_mode;
如下是我的數據庫當前的模式:
1、查看當前連接會話的sql_mode模式:
mysql> select @@session.sql_mode;
2、從環境變量查看sql_mode模式
mysql> show variables like "sql_mode";
3、查看全局sql_mode設置:
mysql> select @@global.sql_mode;
4、設置global:
mysql> set global sql_mode='NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION,NO_ZERO_DATE,NO_ZERO_IN_DATE';
5、設置全局sql_mode可以在不重啟MySQL的情況下生效
配置文件裡面設置
sql_mode=NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION,NO_ZERO_DATE,NO_ZERO_IN_DATE
修改配置文件後,重啟MySQL服務生效
篇幅有限,關于sql_mode方面的内容就介紹到這了,後面會分享更多mysql方面内容,感興趣的朋友可以關注下!
更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!