相關文件 下載本手冊
PDF (美式信紙) - 39.9Mb
PDF (A4) - 40.0Mb
Man Pages (TGZ) - 258.5Kb
Man Pages (Zip) - 365.5Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


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

A.3 MySQL 8.4 常見問題:伺服器 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 8.4 時,預設的伺服器 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 8.4 時,預設的伺服器 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 模式」