2016-12-07 91 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