首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL语法:这是什么?

问MySQL语法:这是什么?
EN

Stack Overflow用户
提问于 2011-06-07 21:27:13
回答 4查看 23.3K关注 0票数 38

我导出的SQL文件包含以下行:

代码语言:javascript
复制
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;

与CREATE TABLE和INSERT INTO不同,这几行是什么意思

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-06-07 21:34:23

他们是variable assignments。赋值是wrapped in executable comments的方式,当使用MySQL时,它们将被执行,如果使用其他关系型数据库,它们将被单独执行。此外,40101指示注释不会被保留在数据库中,即,如果行被执行,则它们仅在执行sql文件时被执行。

票数 44
EN

Stack Overflow用户

发布于 2011-06-07 21:35:15

这是包含在条件注释中的变量赋值。代码的执行取决于所讨论的MySQL版本,请参见comments

票数 4
EN

Stack Overflow用户

发布于 2018-11-22 14:40:31

在查看https://dev.mysql.com/doc/refman/8.0/en/comments.html文档后,这些特殊的注释总是让我感到困惑

如果在!后面添加版本号,则为

。字符,则仅当MySQL版本大于或等于指定的版本号时,才执行注释中的语法。以下注释中的KEY_BLOCK_SIZE关键字仅由MySQL 5.1.10或更高版本的服务器执行:

创建表t1(a INT,KEY (a)) /*!50110 KEY_BLOCK_SIZE=1024 */;

这并不难理解。在50110版本中,意味着5(主要)01(次要)10(修订)=在MySQL版本>= 5.1.10或更高版本中运行

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6265891

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档