2012-10-12 141 views
3

我試圖從命令行運行一些mysql腳本。一個是自動生成的,它不會事先選擇數據庫。現在,我有兩個腳本:mysql腳本沒有選擇數據庫

mysql -u <user> -p<password> < script1.sql 
mysql -u <user> -p<password> < script2.sql 

SCRIPT1的最後一行是USE mydatabase;但是當我運行SCRIPT2它說,沒有選擇的數據庫。有沒有辦法指定用於script2的數據庫?

回答

16

的鮮爲人知的功能添加參數-D這樣

mysql -u<username> -p<password -D<database> < script.sql 
5
mysql -u <user> -p<password> my_database_name < script2.sql 

在你的情況發生,因爲這些是2個獨立的過程,並從第一不從第二的那些連接的查詢。

另一種解決方案是把USE database_name作爲一線的script2.sql

1

該解決方案通過@Desislav會工作(其他的解決辦法是在script2.sql頂部添加「use database」命令),但澄清你的問題

script1的最後一行是USE mydatabase; 這對script2沒有幫助,因爲script2會在不同的進程中執行,所以必須重新指定數據庫。

0

*nix(Unix,Linux等)下,您可以使用cat命令組合這兩個腳本。

cat script1.sql script2.sql | mysql -u <user> -p<password> 

在DOS/Windows中,您可以在copy命令

copy script1.sql+script2.sql | mysql -u <user> -p<password>