我使用INSERT IGNORE INTO ... ON DUPLICATE KEY UPDATE列IF(语句)技术在一个巨大的数据库(数百万条记录)中插入行。我还记录每次运行时新行数,更新行数和未更改行数。
我有一个专栏' last_accessed'它的类型是'ON UPDATE CURRENT_TIMESTAMP'。但是,显然当mysql_affected_rows为零时,此列不会更新,但仅当它为1(插入)或2(重复键更新)时才会更新。
如果我在ON DUPLICATE KEY UPDATE内更新它,我将无法区分更新和未更改的行。
手动更新last_accessed行是非常密集的操作,我想避免它。
我可以用什么技术来解决我的问题?另外,是否有一个mysql查询(类似于mysql_insert_id())将返回上次访问的行ID(无论操作如何)?
答案 0 :(得分:0)
您可以创建store_procedured以返回数据集并在调用时更新该字段。我能想到你做的最好。