使用LOAD DATA INFILE更新单个列的所有行

时间:2016-07-20 00:30:21

标签: mysql

我有一个包含18列的表,我想使用LOAD DATA INFILE更新列page_count的所有行。带有数据的文件非常简单,只需要\ n分隔值。我不想在这里取得任何令人印象深刻的东西;我只想更新一个列中的值 - 大约3000条记录。我正在使用的代码是

 LOAD DATA INFILE '/tmp/sbfh_counter_restore' REPLACE INTO TABLE obits FIELDS TERMINATED BY ',' LINES TERMINATED BY '\r\n' (page_count);

所有这一切都是添加一个新行,并将文件的全部内容转储到page_count列中。我究竟做错了什么? Shoud我用phpmyadmin?我很乐意使用它,因为它更符合我的技能;)

我使用SELECT page_count FROM obits INTO outfile '/tmp/sbfh_counter_restore'

创建了该文件

1 个答案:

答案 0 :(得分:0)

基于我从MySQL文档中可以理解的内容,它不支持将数据加载到ONE COLUMN中,但它将要求所有列以正确的顺序存在于文件中。 至少,你应该使用SELECT * FROM obits INTO outfile,然后加载它,因为它将确保列顺序是一致的。

由于您的所有文件内容都已加载到新行中,我认为您应该检查表的主键(或唯一键)。行将与键匹配,并根据匹配结果更新或插入。 page_count可能不是您的主键或唯一键。 希望有所帮助。