MySQL 8.4 Reference Manual  /  ...  /  MySQL Extensions to Standard SQL

1.7.1 MySQL 对标准 SQL 的扩展

MySQL Server 支持一些您不太可能在其他 SQL DBMSs 中找到的一些扩展。请注意,如果您使用它们,您的代码很可能不具备跨平台性。在某些情况下,您可以编写包含 MySQL 扩展的代码,但仍然是可移植的,通过以下形式的注释:

/*! MySQL-specific code */

在这种情况下,MySQL Server 解析和执行注释中的代码,就像对任何其他 SQL 语句一样,但是其他服务器应该忽略扩展。例如,MySQL Server 认识以下语句中的 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 扩展,按类别组织。