f MySQL sql_mode的差異 ~ 迪貝之家

Pages

MySQL sql_mode的差異

 

我的mysql 版本
為何提版本
結語會告知
我們來看預設的sql_mode參數值

sql_mode
我們來建測試表
塞資料進行測試
mysql 預設是不會讓你把error data塞進資料庫的
第一個欄位,data非數字的部分被自動忽略
第二個欄位,資料過長,自動幫你truncate
第三個欄位,時間無法成功轉換,幫你自動轉換為0000-00-00ㄝ
sql_mode有一個群組設定叫做traditional
我們來把它設上去
sql_mode=TRADITIONAL
再塞一次資料進行測試
STRICT_ALL_TABLES
其實最主要的是STRICT_ALL_TABLES
因為它會要求MySQL validate data
那Traditional與原本欲設有何差異?
我比對過囉~~
差在 ONLY_FULL_GROUP_BY
一般來說,group by的欄位一定要與select 的欄位相符
在mysql不設上這參數
select column list隨你帶ㄝ....
這在其他的資料庫裡頭是不可能發生的
我一開始為何提版本
因為書上居然說
資料檢核要在MySQL 5.7.4才開始轉為預設
wow.....
想說在104網站上頭看到mysql 的給薪超過10萬
不會就是這個原因吧~~
哈~~~~