相關文件 下載本手冊
PDF (美國信紙尺寸) - 40.0Mb
PDF (A4) - 40.1Mb
Man Pages (TGZ) - 258.2Kb
Man Pages (Zip) - 365.3Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


MySQL 9.0 參考手冊  /  MySQL 9.0 常見問題  /  MySQL 9.0 常見問題:伺服器 SQL 模式

A.3 MySQL 9.0 常見問題:伺服器 SQL 模式

A.3.1. 什麼是伺服器 SQL 模式?
A.3.2. 有多少個伺服器 SQL 模式?
A.3.3. 如何判斷伺服器 SQL 模式?
A.3.4. 模式是否依賴於資料庫或連線?
A.3.5. 是否可以擴展嚴格模式的規則?
A.3.6. 嚴格模式是否會影響效能?
A.3.7. 安裝 MySQL 9.0 時,預設的伺服器 SQL 模式是什麼?

A.3.1.

什麼是伺服器 SQL 模式?

伺服器 SQL 模式定義了 MySQL 應支援的 SQL 語法以及應執行何種資料驗證檢查。這使得在不同環境中使用 MySQL 以及將 MySQL 與其他資料庫伺服器一起使用變得更加容易。MySQL 伺服器會將這些模式個別應用於不同的用戶端。如需更多資訊,請參閱第 7.1.11 節,「伺服器 SQL 模式」

A.3.2.

有多少個伺服器 SQL 模式?

每個模式都可以獨立開啟和關閉。如需可用的模式完整清單,請參閱第 7.1.11 節,「伺服器 SQL 模式」

A.3.3.

如何判斷伺服器 SQL 模式?

您可以使用 --sql-mode 選項設定預設的 SQL 模式(用於 mysqld 啟動)。使用陳述式 SET [GLOBAL|SESSION] sql_mode='modes',您可以從連線內變更設定,可以是連線的本機設定,或是全域生效。您可以發出 SELECT @@sql_mode 陳述式來檢索目前的模式。

A.3.4.

模式是否依賴於資料庫或連線?

模式不連結到特定的資料庫。模式可以設定為工作階段(連線)的本機模式,或是伺服器的全域模式。您可以使用 SET [GLOBAL|SESSION] sql_mode='modes' 來變更這些設定。

A.3.5.

是否可以擴展嚴格模式的規則?

當我們提及 嚴格模式 時,我們指的是至少啟用 TRADITIONALSTRICT_TRANS_TABLESSTRICT_ALL_TABLES 模式之一的模式。選項可以組合使用,因此您可以為模式新增限制。如需更多資訊,請參閱第 7.1.11 節,「伺服器 SQL 模式」

A.3.6.

嚴格模式是否會影響效能?

某些設定所需的輸入資料密集驗證比不進行驗證需要更多時間。雖然效能影響不大,但如果您不需要這種驗證(也許您的應用程式已經處理了所有這些),則 MySQL 可讓您選擇停用嚴格模式。但是,如果您確實需要它,嚴格模式可以提供這種驗證。

A.3.7.

安裝 MySQL 9.0 時,預設的伺服器 SQL 模式是什麼?

MySQL 8.0 中的預設 SQL 模式包含以下模式:ONLY_FULL_GROUP_BYSTRICT_TRANS_TABLESNO_ZERO_IN_DATENO_ZERO_DATEERROR_FOR_DIVISION_BY_ZERONO_ENGINE_SUBSTITUTION

如需所有可用模式和預設 MySQL 行為的相關資訊,請參閱第 7.1.11 節,「伺服器 SQL 模式」