mysql duplicates with LOAD DATA INFILE(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 重复的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:mysql 与 LOAD DATA INFILE 重复
基础教程推荐
- 如何根据该 XML 中的值更新 SQL 中的 XML 2021-01-01
- 在多列上分布任意行 2021-01-01
- 如何在 SQL 中将 Float 转换为 Varchar 2021-01-01
- oracle区分大小写的原因? 2021-01-01
- mysql选择动态行值作为列名,另一列作为值 2021-01-01
- 什么是 orradiag_<user>文件夹? 2022-01-01
- 在 MySQL 中:如何将表名作为存储过程和/或函数参数传递? 2021-01-01
- 二进制文件到 SQL 数据库 Apache Camel 2021-01-01
- 表 './mysql/proc' 被标记为崩溃,应该修复 2022-01-01
- MySQL 中的类型:BigInt(20) 与 Int(20) 2021-01-01
