跳到主要内容

1.6.1 MySQL 对标准 SQL 的扩展

MySQL Server 支持一些在其他 SQL DBMS 中不太可能找到的扩展。请注意,如果你你用它们,你的代码很可能无法移植到其他 SQL Server。在某些情况下,你可以使用以下形式的注释编写包含 MySQL 扩展但仍可移植的代码:

/*! MySQL-specific code */

在这种情况下,MySQL Server 解析并执行注释中的代码,就像它解析和执行任何其他 SQL 语句一样,但是其他 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 扩展。

原文链接