2025年3月4日 星期二

MySQL default sql_mode

ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
若沒特別設定,MySQL 預設的 sql_mode 就是上面的值

若本來 sql_mode 是空的,要啟用預設值,有幾點要注意:
1. 當 INSERT/UPDATE 時,值不能超出欄位長度,不然會報錯 (STRICT_TRANS_TABLES)
2. 當 INSERT 時,若沒有指定到的欄位,沒有預設值,會報錯 (STRICT_TRANS_TABLES)
3. 當 INSERT/UPDATE 字串到數字類欄位,會報錯 (STRICT_TRANS_TABLES)
4. 以前能用的 GROUP BY 語法,啟用後可能無法使用 (ONLY_FULL_GROUP_BY)
5. 不能使用 0000-00-00 及 0000-00-00 00:00:00 這種日期時間 (NO_ZERO_IN_DATE,NO_ZERO_DATE)

沒有留言:

scp remote to remote

有 3 台主機 HostA、HostB、HostC 在 HostC 下 scp 指令要從 HostA 複製檔案到 HostB,都透過 Key auth 預設情況下 (沒有加參數 -3) HostC 對 HostA 要建 Key,HostA 對 hostB 要建 Key 資料流是直...