本文介绍了mysql 与 LOAD DATA INFILE 重复的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
使用 LOAD DATA INFILE 时,是否有办法标记重复行,或将任何/所有重复行转储到单独的表中?
When using LOAD DATA INFILE, is there a way to either flag a duplicate row, or dump any/all duplicates into a separate table?
推荐答案
来自 加载日期 INFILE 文档:
REPLACE 和 IGNORE 关键字控制输入行的处理在唯一键值上重复现有行:
The REPLACE and IGNORE keywords control handling of input rows that duplicate existing rows on unique key values:
- 如果您指定 REPLACE,则输入行将替换现有行.换句话说,主键或唯一索引的值与现有行相同的行.参见第 12.2.7 节,替换语法".李>
- 如果您指定 IGNORE,则会跳过与唯一键值上的现有行重复的输入行.如果您不指定任一选项,则行为取决于是否指定了 LOCAL 关键字.如果没有 LOCAL,则在找到重复键值时会发生错误,并忽略文本文件的其余部分.对于 LOCAL,默认行为与指定 IGNORE 相同;这是因为服务器无法在操作过程中停止传输文件.
实际上,没有办法将重复记录重定向到不同的表.您必须将它们全部加载,然后创建另一个表来保存非重复记录.
Effectively, there's no way to redirect the duplicate records to a different table. You'd have to load them all in, and then create another table to hold the non-duplicated records.
这篇关于mysql 与 LOAD DATA INFILE 重复的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!