【问题标题】:How to run sql files containing load data infile statements如何运行包含加载数据 infile 语句的 sql 文件
【发布时间】:2013-08-28 10:27:16
【问题描述】:

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

我需要帮助以更好地实现这一目标。

【问题讨论】:

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


    【解决方案1】:

    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"
    

    【讨论】:

    • 主文件有数千行 codeSOURCE H:/uspto_db/mysql/2012/ipa120126/loadStatements.sql; code 我需要的是如何只调用一个主文件并让进程依次调用每个源...直到全部完成。
    • 我从您的问题中了解到这一点。答案正是显示了如何使用命令行 mysql 实现您想要的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-03-18
    • 2015-06-21
    • 1970-01-01
    • 2018-11-19
    • 1970-01-01
    • 2014-08-13
    • 2020-08-11
    相关资源
    最近更新 更多