我通过套接字使用mysql,我正在更新4000条记录,因此我需要批量INSERT
/ UPDATE
它们以减少网络延迟。问题是我有一个列datetime_inserted
,我希望在第一次插入记录时将其设置为NOW()
,但在它已经存在时永远不会被替换,因此REPLACE
不是一个选项我想更新记录,因此IGNORE
将不起作用。
我真的不了解整个ON DUPLICATE KEY UPDATE
,但我希望每列(40左右)更新datetime_inserted
我该怎么做?
答案 0 :(得分:3)
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