【问题标题】:MySQL LOAD DATA IN FILE update a single columnMySQL LOAD DATA IN FILE 更新单列
【发布时间】:2012-02-08 03:40:50
【问题描述】:

我正在尝试从一组 10 个输入 tsv 文件中填充一个稀疏表。

每个文件都有primary_key,即目标表中某一列的列值。

但是,每个文件都有一组不同的主键,它们都有值。

我希望使用 LOAD DATA IN FILE 将这些加载到表中。

第一个文件加载正常,但第二个文件在发现重复主键时遇到问题。

如果我在查询中使用 REPLACE,则第一列中加载的值会丢失,但如果我使用 IGNORE,则不会在第二列中加载该值。

除了复杂的文本操作将所有输入文件合并到一个文件中之外,还有其他方法吗?

【问题讨论】:

  • 想到一个策略:一次将文件加载到临时表中,并使用 INSERT..SELECT..UPDATE ON DUPLICATE KEY UPDATE 查询将该表中的数据复制到稀疏表中stackoverflow.com/questions/2472229/…

标签: mysql performance load


【解决方案1】:

那是因为 REPLACE 模式会先删除记录。

同意 Girish Rao 关于使用临时表的观点。这是此解决方案的一个示例 - http://forums.mysql.com/read.php?10,362103,362423#msg-362423

另外,您可以在dbForge Studio for MySQL 中使用Data Import tool(追加/更新模式)(从 CSV 文件导入数据在免费 Express Edition 中没有限制)。

【讨论】:

    猜你喜欢
    • 2016-10-16
    • 2020-04-09
    • 2021-02-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-12-02
    • 2013-01-14
    相关资源
    最近更新 更多