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

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

我恳请帮助找到更好的方法来实现这一目标。

最佳答案

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"

关于mysql - 如何运行包含 load data infile 语句的 sql 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18435535/

相关文章:

php - 更新数字的 MySQL 问题

php - mySQL 和 PHP 的最佳性能 : Lots of small queries, 还是一个大的?

java - 连接 HSQL 数据库管理器时无法从 Java 代码连接到 HSQL 数据库

linux:确定正在运行的 init.d 脚本是否作为系统启动序列的一部分执行

scripting - 如何在 Jira 中设置自动问题转换?

bash - 在命令行上解析 shell 脚本的输入

mysql - 如何将 mySQL 表转换为带标题的列表?

php - 获取具有值的列的百分比

mysql - 从 SQL 中的表中选择不同的日期间隔

MYSQL - 从列中选择一个值或(如果没有给出值)选择全部