【问题标题】:mysql bulk insert a text filemysql批量插入文本文件
【发布时间】:2011-04-08 08:02:56
【问题描述】:

我有纯文本文件,我想将该文本文件的内容逐行移动到 mysql 表中,任何人都可以帮助我,因为它不是 csv 文件,我该如何实现这一点

我的数据库设计如下

RowID, int(11), NO, PRI,auto_increment
Text, varchar(94) // Here i have to insert line by line
RecordType, varchar(50)

内容示例

123456789007
545654665654654
6344534534543534534
786775645654654646
8456546456456546
9078565656546546546456456456

【问题讨论】:

  • 你能比“逐行”更精确吗?我假设您的意思是文本文件实际上是单列(文本)。如果是这样,您可以考虑您的文本文件 CSV(即使它不包含逗号)。
  • 不是一列而是多列
  • 如果它有多个列,那么请提供文本文件的示例。那么答案的质量就会更高。
  • 在您的内容示例中,我只能看到单列。行是多个。可以安全地将其视为 CSV(或制表符分隔,或任何分隔,因为没有多列也没有分隔符)。

标签: c# asp.net mysql


【解决方案1】:

尚不清楚您是否需要这样做一次/很少或作为系统的一部分。

在服务器端,你可以这样做

LOAD DATA LOCAL INFILE '<file name>' INTO TABLE <table>;

查看full语法

  • 更改行终止字符串
  • 跳过行
  • 在同一命令中为 RecordType 赋值

编辑: 特别是你的情况

LOAD DATA LOCAL INFILE '<file name>' INTO TABLE <table>
(@Text)
SET Text=@Text 

【讨论】:

  • 不合理我写这个LOAD DATA INFILE 'c:\ACH1.txt' INTO TABLE tblACHDATA 我收到一个错误,因为找不到 c:ACH1.txt
  • 本地很重要,试试吧。
  • Semms windoze 期望反斜杠是正斜杠,C:\ 是 C:/(我不在 win 上运行 mysql)。 Google 是您的朋友。
  • 阅读来自 dev.mysql.com/doc/refman/5.1/en/load-data.html 的文档,关于 LOCAL 的部分。如果使用 LOCAL 文件的位置,则客户端应该可以使用,如果没有 LOCAL,则服务器可以使用。但是阅读相对路径的详细信息,然后还有 mysql 进程的安全性和权限等......底线是这可行,mysql 文档可能并不完美,但没有错。使用它们。
【解决方案2】:

【讨论】:

    【解决方案3】:

    试试这个

    LOAD DATA local INFILE 'C:/Documents and Settings/Administrator/Desktop/Merge.txt' 
    INTO TABLE tblachmaster
    FIELDS TERMINATED BY ',' ENCLOSED BY '"'
    LINES TERMINATED BY '\r\n'
    IGNORE 1 LINES; 
    

    【讨论】:

      【解决方案4】:

      如果您的文件是类似 CSV 的文件,您可以使用 LOAD DATA INFILE 语句。

      像这样的文本文件(如下示例),您可以使用 dbForge Studio for MySQL 中的数据导入工具(文本格式)加载。它支持标题并跳过不必要的行。

      ================================================================
      |      actor_id      |     first_name     |     last_name      |
      ================================================================
      |         1          |      PENELOPE      |      GUINESS       |
      ----------------------------------------------------------------
      |         2          |        NICK        |      WAHLBERG      |
      ----------------------------------------------------------------
      |         3          |         ED         |       CHASE        |
      ----------------------------------------------------------------
      |         4          |      JENNIFER      |       DAVIS        |
      ----------------------------------------------------------------
      |         5          |       JOHNNY       |    LOLLOBRIGIDA    |
      ----------------------------------------------------------------
      |         6          |       BETTE        |     NICHOLSON      |
      ----------------------------------------------------------------
      |         7          |       GRACE        |       MOSTEL       |
      ----------------------------------------------------------------
      |         8          |      MATTHEW       |     JOHANSSON      |
      ----------------------------------------------------------------
      |         9          |        JOE         |       SWANK        |
      ----------------------------------------------------------------
      |         10         |     CHRISTIAN      |       GABLE        |
      ----------------------------------------------------------------
      

      【讨论】:

        【解决方案5】:

        一些 PHP 脚本会以一种灵活而简单的方式轻松实现此目的。您需要提供有关文本文件格式和数据库架构的更多详细信息(文本文件中的一些示例)。

        另一种解决方案可能只是构建一个 VBA 宏来将您的文本文件转换为有效的 CSV 文件。然后使用 phpMyAdmin 之类的东西将 CSV 文件上传到数据库

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-01-06
          • 2019-08-30
          • 2016-08-11
          • 1970-01-01
          相关资源
          最近更新 更多