我想将数据从temp_table复制到我的表中,但忽略重复项。
我已使用INSERT IGNORE INTO $table_name SELECT * FROM $temp_table;
命令来复制。
以上工作正常,但我想记录被忽略的数据。可能吗?
编辑(根据OP的评论):
我已经定义了唯一性,并结合了ID,名称,时间这三个字段。
答案 0 :(得分:0)
我不确定是否可以对被忽略的行进行日志记录;但是如果您只想知道将会被忽略的行;您可以在INSERT IGNORE..
操作之前之前运行以下查询。
我们将基于定义的唯一键在两个表之间执行JOIN
,以获取$temp_table
中已经存在的$table_name
行:
SELECT tt.*
FROM table_name t
JOIN temp_table tt
ON tt.id = t.id AND
tt.name = t.name AND
tt.time = t.time