MySQL 9.0 参考手册  /  ...  /  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 扩展,按类别组织。