Mysql 在重复键时,更新除

Mysql 在重复键时,更新除,mysql,sql,duplicates,Mysql,Sql,Duplicates,我通过一个套接字使用mysql,我正在更新4000条记录,因此我需要批量插入它们以减少网络延迟。问题是,我插入了一列datetime\u,我想在第一次插入记录时将该列设置为NOW(),但当记录已经存在时,它永远不会被替换,因此REPLACE不是一个选项,我想更新记录,因此IGNORE不起作用 我真的不太了解重复键更新的整个,但我希望除了插入的datetime\u之外的每一列(大约40列)都能更新 我怎样才能做到这一点?我认为也许丑陋的/bruteforce方法是实现这一点的方法,但也许我认为会有

我通过一个套接字使用mysql,我正在更新4000条记录,因此我需要批量插入它们以减少网络延迟。问题是,我插入了一列
datetime\u
,我想在第一次插入记录时将该列设置为
NOW()
,但当记录已经存在时,它永远不会被替换,因此
REPLACE
不是一个选项,我想更新记录,因此
IGNORE
不起作用

我真的不太了解重复键更新的整个
,但我希望除了插入的
datetime\u之外的每一列(大约40列)都能更新


我怎样才能做到这一点?

我认为也许丑陋的/bruteforce方法是实现这一点的方法,但也许我认为会有一个关键字来防止键入40列。这太简单了:)。不过,for循环可能会有所帮助。我认为也许丑陋的/bruteforce方法是实现这一点的方法,但也许我认为会有一个关键字来防止键入40列。这太简单了:)。不过,for循环可能会有所帮助。
INSERT INTO the_table (col1,col2,...,datetime_inserted) VALUES(value1,value2,...,NOW())
ON DUPLICATE KEY UPDATE SET col1=VALUES(col1), col2=VALUES(col2), ... #skip the datetime_inserted for the updates