将文本文件中的数据插入到预先存在的列中

时间:2015-04-09 20:50:10

标签: mysql phpmyadmin

我正在尝试从文本文件(18.9GB大)插入数据,如下所示:

  

as8dyta89sd6892yhgeui2eg

     

asoidyaos8yd98t2y492g4n2

     

as8agfuigf98safg82b1hfdy

它们都是32个字符的长度。目前我有一个名为hashmasher的数据库和一个名为combination的组合表,名为unhashed和sha256。目前,我将数据存储在未散列的列中。看起来像:

  

没有受伤| SHA256

     

数据| (完全空着)

现在我想知道,如何将数据插入到现有列中以及仅将数据添加到第二列,例如上面的内容将成为

  

没有受伤| SHA256

     

数据| firstlineoftextfile

     

数据| secondlineoftextfile

如果我使用LOAD DATA INFILE,它会将它加载到NEW行(这就是我所知道的),并将它加载到未散列的列以及sha256列。

TL; DR我想将文本文件中的数据插入到第二列预先存在的行中。

1 个答案:

答案 0 :(得分:0)

使用LOAD DATA INFILE将数据插入新表中。这可能是暂时的,加快一点。使用INSERT ... SELECT ... JOIN合并两个表。

据我所知,19G表可能需要几个小时。

事情变得更复杂,因为您的原始文件每行包含一个值。您可能希望使用sed / awk脚本修复它,以便每行有两个值,以便LOAD DATA INFILE可以工作。

另一种方法是继续使用sed / awk脚本,并将原始文件转换为带有一堆UPDATE语句的文件,然后将结果传递给MySQL。