2012-07-29 74 views
0

我通過套接字使用mysql,並且我正在更新4000條記錄,因此我需要批量INSERT/UPDATE來減少網絡延遲。問題是,我有一個列datetime_inserted,我想設置爲NOW()當第一次插入記錄,但從來沒有被替換,因爲它已經存在,因此REPLACE不是一個選項,我想更新記錄,所以IGNORE贏得'工作。關於DUPLICATE KEY UPDATE每列除

我真的不明白整個ON DUPLICATE KEY UPDATE但我想每一列(40個左右)來更新除datetime_inserted

我怎樣才能做到這一點?

回答

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 
+0

我想也許醜陋/ bruteforce方法是這樣做的,但也許我認爲會有一個關鍵字,以防止鍵入40列。 – ParoX 2012-07-29 19:55:50

+0

這太容易了:)。 for循環雖然可能有幫助。 – Vatev 2012-07-29 19:57:09

相關問題