-1

如果自上次运行以来没有修改过,mysql 是否足够智能,不会通过 LOAD DATA INFILE 重新处理文件?找不到关于那个的文档。

4

1 回答 1

1

它将再次添加数据。这就是我的经验。

编辑:

我进一步调查并发现以下内容: http: //dev.mysql.com/doc/refman/5.1/en/load-data.html

您可以忽略具有重复键的行。因此,如果您的整个文件没有更改,那么实际上它将被忽略。

REPLACE 和 IGNORE 关键字控制对在唯一键值上重复现有行的输入行的处理:

如果您指定 REPLACE,输入行将替换现有行。换句话说,主键或唯一索引的值与现有行相同的行。请参见第 13.2.7 节,“替换语法”。

如果您指定 IGNORE,将跳过与唯一键值上的现有行重复的输入行。

如果您不指定任一选项,则行为取决于是否指定了 LOCAL 关键字。如果没有 LOCAL,则在找到重复键值时会发生错误,并忽略文本文件的其余部分。对于 LOCAL,默认行为与指定 IGNORE 相同;这是因为服务器无法在操作过程中停止文件的传输。

于 2013-09-13T14:56:06.610 回答