MySQL转储中的标志位

16

在查看mySQL转储文件时,我发现了一些内容,想知道它们是什么。

我看到:

/*!50001 DROP TABLE IF EXISTS `xxx` */;

50001标志是什么,有没有它们含义的列表?

3个回答

20

有关MySQL的论坛/邮件列表在这里讨论

/*!50001 DROP TABLE `category_count_view`*/; 

这是MySQL的一个“特性”。其他任何关系型数据库管理系统都将其视为注释。

但是,MySQL会查看50001并将其作为MySQL版本进行检查。这是版本5.00.01或实际世界中的5.0.1,但留有余地使子版本和发布号大于9。

如果MySQL低于5.0.1,则将该行视为注释,并在MySQL大于或等于5.0.1时处理该行。

这是一种使SQL脚本与不同版本的MySQL兼容的方式,可以包含新功能。


4

500001指生成该文件的MySQL版本。

这可能是5.00.01或5.0.01。


3

50001是一个表示你的mysql版本的值。

它代表的是5.00.01版本,或者在实际使用中是5.0.1版本,但留有余地使得次版本和发布版本可大于9。

这是一种使SQL脚本与不同版本的MySQL兼容的方法,并允许包括新功能。


如果这是版本问题,那么创建数据库的语句应该是:CREATE DATABASE /!32312 IF NOT EXISTS/YYY /*!40100 DEFAULT CHARACTER SET latin1 */; - Jamie Teuma
32312类似,但mysql服务器的版本不同。 - Ganz

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接