2016-12-07 75 views
0

我使用mysqldump与powershell为了创建我的web应用程序的备份脚本。mysqldump - 创建表如果不存在

这是使用数据库转储命令IM:

mysqldump --user=$username --password=$password --log-error=$errorLog --result-file=$backupfile --databases $database

这将创建所需的脚本,但是“IF NOT EXISTS”位被注释掉了,我不知道为什么,或如何停止这种行为。

线形态sqldump:

CREATE DATABASE /*!32312 IF NOT EXISTS*/ training_web /*!40100 DEFAULT CHARACTER SET utf8 */;

任何帮助将不胜感激。

感谢

回答

1

它是一种暗示,MySQL的只适用于该版本(或更高版本)。 32312 => 3.23.12

+0

因此,这是否意味着,我的脚本会做,如果不存在,只要我使用mysql 3.23.12或更高版本时,我运行脚本? – Brad

+0

@Brad它会抛出一个错误,因为如果数据库不支持该命令,它不能做太多的事情。使用--force你可以跳过它,但我不是默认的粉丝--force(因为你想知道如果出了问题!)。 – Roger

1

这是转储没有的完全正常的行为IF NOT EXISTS ...你看到的东西只是MySQL的一个指令,告诉它该命令只适用于版本3.23.12或更高版本。

如果你想导入转储,因为它会有IF NOT EXISTS,只需使用--force开关。

+0

因此,这是否意味着,我的脚本会做,如果不存在,只要我使用MySQL 3.23.12或更高版本时,我运行脚本? – Brad

+0

感谢两位,正如@Rogier提到的,如果版本> =,那么似乎会执行这些“注释”。再次感谢。 – Brad

相关问题