如何运行包含load data infile语句的sql文件

时间:2013-08-26 01:43:48

标签: mysql sql scripting load load-data-infile

我在XML文件中有大量数据需要加载到MySQL数据库中。

即。在2012年的文件夹中,我有大约52个xml文件,以及一个用于所有XML的loadStatements.sql查询文件。 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工作台或shell调用此文件,它运行正常。现在我有数百个这样的文件,并且手动加载每个文件是非常的。

我需要一个可以调用这些加载文件的主文件。即

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命令”

我需要帮助以更好的方式实现这一目标。

1 个答案:

答案 0 :(得分: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"