首页 > 解决方案 > 带有更新文件的 MySQL LOAD DATA

问题描述

标签: mysql

解决方案


根据问题编辑和评论更新。

由于id表中的字段是auto_increment,它提供了一个不断增加的值。在上传新文件之前获取该字段的最大值,id并使用它来限制您只删除较新的记录:

SET @OLDMAXID = IFNULL((SELECT MAX(id) FROM download1), 0);
LOAD DATA INFILE 'C:/users/user/desktop/download.txt' IGNORE INTO TABLE download1
FIELDS TERMINATED BY ';'
LINES TERMINATED BY '\r\n'
IGNORE 3 LINES;
DELETE FROM download1 WHERE date_time < (SELECT * FROM (SELECT MAX(date_time) AS MaxDatetime FROM download1) AS t) and id > @OLDMAXID;

推荐阅读