Mysql 向数据集添加新列时加载数据填充

Mysql 向数据集添加新列时加载数据填充,mysql,import,Mysql,Import,我有一个包含以下列的表,每个列中都有数据: A B C D 现在,我有一些新数据要添加到我已经在表中设置的一些新列中: E F G H 主键是A。我创建了一个新的CSV文件,其中包括整个更新的数据集,包括A、B、C、D、E、F、G、H列。然后我使用“加载数据填充”查询导入所有列(A-H),以更新表,并希望将E-H列值添加到现有数据集,因为已经为数据库中已经存在的所有行设置了A值 问题是,当我导入时,它实际上会跳过所有记录,而不是更新。以下是我使用的查询: load data local infi

我有一个包含以下列的表,每个列中都有数据:

A B C D

现在,我有一些新数据要添加到我已经在表中设置的一些新列中:

E F G H

主键是A。我创建了一个新的CSV文件,其中包括整个更新的数据集,包括A、B、C、D、E、F、G、H列。然后我使用“加载数据填充”查询导入所有列(A-H),以更新表,并希望将E-H列值添加到现有数据集,因为已经为数据库中已经存在的所有行设置了A值

问题是,当我导入时,它实际上会跳过所有记录,而不是更新。以下是我使用的查询:

load data local infile 'C:/import.csv' INTO table import_data FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '\"' LINES TERMINATED BY '\n'  
我不知道我做错了什么。在向现有行添加新数据时,可能需要使用“加载填充”以外的其他函数?为什么它会跳过所有的行


如果您有任何建议,我们将不胜感激。

load
创建新记录。它不会将加载的记录与数据库中已存在的记录“合并”。那不是它的工作。您必须
加载到一个新的临时表中,然后合并这两个表。谢谢Marc。是否有一个函数用于如何进行表合并?是否总是需要加载到新的临时表中,然后合并?或者,有没有更简单的方法,可以通过设置每一行的主键来使用新数据更新表?如果不希望合并,则选择“是”
load
的工作是将新记录加载到数据库中。对于合并,您需要考虑其他选项。e、 g.加载到临时表中,然后使用适当的联接选项进行
update
查询。
INSERT
有一个
ON-DUPLICATE-KEY-update
子句,可用于合并,但
load-DATA-INFILE
中没有类似的内容。