mariadb 從 10.0 升級 10.2 的問題 SQL_MODE

未分類
上禮拜手養把主機的 SQL 從 mariadb 10.0 升級到 10.2 本來以為沒什麼問題的 結果過沒多久馬上就有客戶打電話來了 一堆東西都不正常 IMG_1433 結果查了一下 發現是 insert 都失效 假設你有 5 個欄位 你只塞4個 少塞的那個欄位不是 key 會被 SQL Server 檔掉 這要改 code 是不難 但我整台主機的 code 都要改 要改到何時 當下也無法把 SQL 回復成 10.0 只好找其他方法了 後來發現 10.0 升級 10.2 會加入一個叫做 SQL_MODE 的設定 會多這些設定
STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
其中會讓我無法 insert 的應該是 STRICT_TRANS_TABLES 就是嚴格的模式 只要有少的欄位 沒有 default 值 都會被檔下來 把這個拔掉就沒事了 可以到 /etc/my.cnf 修改 SQL_MODE 的設定 改成你要的數值就ok