2013-08-26 49 views
0

我在XML文件中有大量需要加載到MySQL數據庫中的數據。如何運行包含加載數據infile語句的sql文件

即2012年的文件夾中,我有大約52個XML文件,以及一個loadStatements.sql查詢文件,用於所有XML。 loadStatements.sql具有以下幾行...在這裏只是一些。

use uspto2012; 
LOAD XML LOCAL INFILE 'H:/uspto_db/mysql/2012/ipa120126/ipa120126-01_sql.xml' INTO TABLE  assignee ROWS IDENTIFIED BY '<assignee>'; 
LOAD XML LOCAL INFILE 'H:/uspto_db/mysql/2012/ipa120126/ipa120126-01_sql.xml' INTO TABLE  claims ROWS IDENTIFIED BY '<claims>'; 
LOAD XML LOCAL INFILE 'H:/uspto_db/mysql/2012/ipa120126/ipa120126-01_sql.xml' INTO TABLE description ROWS IDENTIFIED BY '<description>'; 
LOAD XML LOCAL INFILE 'H:/uspto_db/mysql/2012/ipa120126/ipa120126-01_sql.xml' INTO TABLE info ROWS IDENTIFIED BY '<info>'; 

現在,如果我從MySQL工作臺或外殼調用此文件,它運行正常。現在我有成百上千個這樣的文件,並且手動加載每個文件非常有效。

我需要一個可以調用這些加載文件的主文件。即

use uspto2012; 
SOURCE H:/uspto_db/mysql/2012/ipa120126/loadStatements.sql; 
SOURCE H:/uspto_db/mysql/2012/ipa120202/loadStatements.sql; 
SOURCE H:/uspto_db/mysql/2012/ipa120209/loadStatements.sql; 
SOURCE H:/uspto_db/mysql/2012/ipa120216/loadStatements.sql; 

但是,當我嘗試運行此文件時,我從mwb中得到錯誤。 「源不被識別爲MySQL命令」

我希望有更好的方法來實現這一點。

回答

0

SOURCE是mysql CLI命令。

如果您已經創建了主文件,你可以做到這一點,雖然

C:\> mysql -uuser -p < H:/path/to/your/matser_file.sql 

C:\> mysql -uuser -p -e "source H:/path/to/your/matser_file.sql" 
+0

主文件有上千個這樣的行'code'SOURCE H:/ uspto_db/MySQL的/ 2012 /ipa120126/loadStatements.sql; 'code'我需要的是如何只調用一個主文件,並讓進程調用每個源文件......直到完成所有操作。 –

+0

我明白你的問題。答案顯示**完全**如何實現你想要的命令行mysql。 – peterm