MySQL 8.4 參考手冊  /  ...  /  MySQL 對標準 SQL 的擴展

1.7.1 MySQL 對標準 SQL 的擴展

MySQL 伺服器支援一些在其他 SQL DBMS 中不太可能找到的擴展。請注意,如果您使用它們,您的程式碼很可能無法移植到其他 SQL 伺服器。在某些情況下,您可以編寫包含 MySQL 擴展的程式碼,但仍然可以移植,方法是使用以下形式的註解:

/*! MySQL-specific code */

在這種情況下,MySQL 伺服器會像解析其他 SQL 語句一樣解析並執行註解中的程式碼,但其他 SQL 伺服器應該忽略這些擴展。例如,MySQL 伺服器會識別以下語句中的 STRAIGHT_JOIN 關鍵字,但其他伺服器不應該識別:

SELECT /*! STRAIGHT_JOIN */ col1 FROM table1,table2 WHERE ...

如果您在 ! 字元後新增版本號碼,則只有當 MySQL 版本大於或等於指定的版本號碼時,才會執行註解中的語法。以下註解中的 KEY_BLOCK_SIZE 子句僅由 MySQL 5.1.10 或更高版本的伺服器執行:

CREATE TABLE t1(a INT, KEY (a)) /*!50110 KEY_BLOCK_SIZE=1024 */;

以下描述列出了 MySQL 擴展,依類別組織。