回答

收藏

mysql与LOAD DATA INFILE重复

技术问答 技术问答 61 人阅读 | 0 人回复 | 2023-09-13

使用LOAD DATA INFILE时,是否有办法标记重复的行,或将任何/所有重复项转储到单独的表中?* E9 N( T- C1 |4 b
               
1 y$ A) m8 c( i7 m解决方案:8 W, a% I6 F+ |8 {  J
               
  x; |* n% x. Z6 R
8 o. N/ y  |% A5 d. T
- B6 u9 l0 E- A( y. U5 U; z+ P                从LOAD DATE INFILE文档中:/ W0 D" b7 E/ s/ ~3 q6 Q7 c: p

( x! G8 ~9 ~" O' C8 f( ~& K该REPLACE和IGNORE关键字控制处理是唯一键值重复现有行输入行:
" _( B$ s$ F6 K9 l) O( p0 ]*
9 X3 ^" U; P8 ^& @如果指定REPLACE,则输入行将替换现有行。换句话说,主键或唯一索引的值与现有行的值相同的行。请参见第12.2.7节“凌EPLACE语法”。5 W: g3 p. n6 k
  *
  @0 _5 ]6 A( V# R5 r& h! M. D如果指定IGNORE,将跳过在唯一键值上复制现有行的输入行。如果您未指定任何一个选项,则行为取决于是否指定了LOCAL关键字。如果没有LOCAL,则在找到重复的键值时会发生错误,而文本文件的其余部分将被忽略。使用LOCAL时,默认行为与指定了IGNORE相同。这是因为
, l: ~/ w& g- M, H! M' ?7 S服务器无法在操作过程中停止文件的传输* ~, f& o& m; B. c/ x

) r. C" }6 |9 d! V3 t
1 q4 K7 e0 t+ N& \8 c! C实际上,无法将重复的记录重定向到另一个表。您必须将它们全部装入,然后创建另一个表来保存未重复的记录。
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则