INSERT ... ON DUPLICATE KEY UPDATE

把放很久的文章整理出來。

這裡看到 4.1 之後的版本可以有 INSERT ... ON DUPLICATE KEY UPDATE 這種用法:MySQL Counters。引用的原文在 INSERT ON DUPLICATE KEY UPDATE and summary counters. 這篇。

如果你對於 race condition 有瞭解,你可以在文章裡看到這種用法將本來要自己做的檢查交給 處理:

INSERT INTO ipstat VALUES(inet_aton('192.168.0.1'), 1, now()) ON duplicate KEY UPDATE hits = hits + 1;

這個功能在 4.1 以及之後的版本有提供。

This entry was posted in Computer, Database, Murmuring, Programming, Software. Bookmark the permalink.

5 Responses to INSERT ... ON DUPLICATE KEY UPDATE

  1. CGS says:

    這種 COMMAND 在其它 SQL Server 可用嗎 ?( Except MySQL )

  2. Gea-Suan Lin says:

    不清楚,我很少用其他的 RDBMS。

  3. Pingback: -TMA-1- » links for 2006-06-23

  4. Season says:

    Hello ~

  5. 笑容 says:

    我尝试用这个sql 来解决一些问题
    但是在试试 后面的 update 是 这样子

    update set cnt = cnt + 1 , dateline = now()

    的时候,cnt 可以正确加1,但是后面的dateline 似乎没有改变……

Leave a Reply

Your email address will not be published. Required fields are marked *