加载重复数据
如果使用 LOAD DATA INFILE
命令使用现有数据填充表,则通常会发现由于重复导致导入失败。有几种可能的方法可以解决这个问题。
加载数据本地
如果在服务器中启用了此选项,则可以使用它来加载客户端计算机而不是服务器上存在的文件。副作用是忽略唯一值的重复行。
LOAD DATA LOCAL INFILE 'path of the file/file_name.txt'
INTO TABLE employee
LOAD DATA INFILE’fname’替换
使用 replace 关键字时,重复的唯一键或主键将导致现有行被替换为新行
LOAD DATA INFILE 'path of the file/file_name.txt'
REPLACE INTO TABLE employee
LOAD DATA INFILE’fname’IGNORE
与 REPLACE
相反,现有行将被保留,新的行将被忽略。这种行为类似于上面描述的 LOCAL
。但是,客户端计算机上不需要存在该文件。
LOAD DATA INFILE 'path of the file/file_name.txt'
IGNORE INTO TABLE employee
通过中间表加载
有时忽略或替换所有重复项可能不是理想的选择。你可能需要根据其他列的内容做出决策。在这种情况下,最好的选择是加载到中间表并从那里转移。
INSERT INTO employee SELECT * FROM intermediary WHERE ...