mysql5.5升級到5.7後,默認的sql模式會發生改變,通過以下語句查看模式:
SELECT @@sql_mode
ONLY_FULL_GROUP_BY: select語句後面只能跟聚合函數以及group by的字段
STRICT_TRANS_TABLES:如果一個字段非空約束,沒有默認值,在插入時如果不插入這個字段,報錯
ps:mysql5.5默認沒有這個約束:
insert語句跳過某個段名,則使用默認值填充
有非空約束,無默認值,會自動設置默認值,字符串類型的默認值是 空字符串,數字類型的默認值是 0(之前我一直以爲這種情況是不能插入的,實際上是可以的)
非空約束只約束了 NULL 這種值的插入