我想将数据从temp_table复制到表中,但忽略重复项。
我已经使用INSERT IGNORE INTO $table_name SELECT * FROM $temp_table;
命令复制了。
上面的工作正常,但我想记录被忽略的数据。可能吗?
编辑(根据OP的评论):
我定义了与ID,名称,时间等三个字段结合在一起的唯一身份。
最佳答案
我不确定是否可以对被忽略的行进行日志记录;但是如果您只想知道将被忽略的行;您可以在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
关于mysql - 是否可以在INSERT IGNORE INTO mysql查询中记录忽略数据的日志?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53495258/