在 MySQL 中設定全域 sql_mode
在 MySQL 中,sql_mode 定義資料庫伺服器的預設行為。全域設定 sql_mode 將配置的模式應用於所有後續連線和會話。這與為每個會話設定 sql_mode 不同,後者僅影響目前連線。
在全域設定 sql_mode 時遇到錯誤時,檢查語法非常重要。在全域上下文中設定多種模式的正確方法是:
SET GLOBAL sql_mode = 'NO_BACKSLASH_ESCAPES', 'STRICT_TRANS_TABLE', 'NO_AUTO_CREATE_USER', 'NO_ENGINE_SUBSTITUTION'
全域模式和會話模式的優點
全域模式:
會話模式:
首選設定
首選設定取決於應用和環境。如果需要全面一致的行為,建議全域設定 sql_mode。但是,如果出現特定的會話要求,會話模式可以提供必要的靈活性。
永久設定全域 sql_mode
要讓全域 sql_mode 變更永久生效,需要在MySQL 設定檔(例如 Linux 上的 /etc/mysql/my.cnf)。在 [mysqld] 部分中,新增或修改 sql_mode 選項。例如:
[mysqld] sql_mode = NO_BACKSLASH_ESCAPES, STRICT_TRANS_TABLES, NO_ENGINE_SUBSTITUTION
對於較新版本的MySQL(例如5.7.8 或更高版本),sql_mode 設定可能需要連字符而不是下劃線和雙引號:
[mysqld] sql-mode="STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION"
始終根據所使用的MySQL 版本查閱MySQL 文檔,以了解適當的語法。
以上是如何在 MySQL 中設定和管理全域'sql_mode”?的詳細內容。更多資訊請關注PHP中文網其他相關文章!