mysql Sql Model

操作數據庫的時候,有時候會出現

this is incompatible with sql_mode=only_full_group_by

Sql Model

  • ONLY_FULL_GROUP_BY
    對於GROUP BY聚合操作,如果在SELECT中的列,沒有在GROUP BY中出現,那麼將認爲這個SQL是不合法的,因爲列不在GROUP BY從句中
  • STRICT_TRANS_TABLES
    在該模式下,如果一個值不能插入到一個事務表中,則中斷當前的操作,對非事務表不做任何限制
  • NO_ZERO_IN_DATE
    在嚴格模式,不接受月或日部分爲0的日期。如果使用IGNORE選項,我們爲類似的日期插入'0000-00-00'。在非嚴格模式,可以接受該日期,但會生成警告。
  • NO_ZERO_DATE
    在嚴格模式,不要將 '0000-00-00'做爲合法日期。你仍然可以用IGNORE選項插入零日期。在非嚴格模式,可以接受該日期,但會生成警告
  • ERROR_FOR_DIVISION_BY_ZERO
    在嚴格模式,在INSERT或UPDATE過程中,如果被零除(或MOD(X,0)),則產生錯誤(否則爲警告)。如果未給出該模式,被零除時MySQL返回NULL。如果用到INSERT IGNORE或UPDATE IGNORE中,MySQL生成被零除警告,但操作結果爲NULL。
  • NO_AUTO_CREATE_USER
    防止GRANT自動創建新用戶,除非還指定了密碼。
  • NO_ENGINE_SUBSTITUTION
    如果需要的存儲引擎被禁用或未編譯,那麼拋出錯誤。不設置此值時,用默認的存儲引擎替代,並拋出一個異常。

解決辦法:

1:數據庫執行    select @@GLOBAL.sql_mode;

 

2:在my.ini中  [mysqld]   下  添加

sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION

3:重新啓動mysql ok!

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章