我想将数据从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/

10-14 13:49