把放很久的文章整理出來。
在 Photo Matt 這裡看到 MySQL 4.1 之後的版本可以有 INSERT ... ON DUPLICATE KEY UPDATE
這種用法:MySQL Counters。引用的原文在 INSERT ON DUPLICATE KEY UPDATE and summary counters. 這篇。
如果你對於 race condition 有瞭解,你可以在文章裡看到這種用法將本來要自己做的檢查交給 MySQL 處理:
INSERT INTO ipstat VALUES(inet_aton('192.168.0.1'), 1, now()) ON duplicate KEY UPDATE hits = hits + 1;
這個功能在 MySQL 4.1 以及之後的版本有提供。
這種 COMMAND 在其它 SQL Server 可用嗎 ?( Except MySQL )
不清楚,我很少用其他的 RDBMS。
Hello ~
我尝试用这个sql 来解决一些问题
但是在试试 后面的 update 是 这样子
update set cnt = cnt + 1 , dateline = now()
的时候,cnt 可以正确加1,但是后面的dateline 似乎没有改变……