If Exists INSERT and UPDATE in MySQL

2012/11/15
~ 阿亮 ~

一般 SQL 在做新增資料時,會判斷資料是否已存在,再決定 INSERT or UPDATE.

標準的 SQL 會這麼做

IF EXISTS (SELECT * FROM Table1 WHERE Column1='SomeValue')
   UPDATE Table1 SET (...) WHERE Column1='SomeValue'
ELSE
   INSERT INTO Table1 VALUES (...)

或者

UPDATE Table1 SET (...) WHERE Column1='SomeValue'
IF @@ROWCOUNT=0
    INSERT INTO Table1 VALUES (...)

但 MySQL 下, 以上兩個方法是不會 WORK 的,要用以下 Duplicate Key Update 的做法

INSERT INTO table (a,b,c) VALUES (1,2,3)
  ON DUPLICATE KEY UPDATE c=c+1;

 

這是因為 MySQL 沒有 IF EXISTS 以及 @@ROWCOUNT 。



站內搜尋



本站其他服務

本站其他軟體



  • 條碼掃描器(QRCode)

    支援 QRCode and Barcodes、可連續快速掃描、自動對焦、可打開手電筒供掃描時使用


  • 照片去背(PhotoEraser)

    一款方便移除背景的工具,產生透明背景圖可以存回原本相簿,也可分享到其他 App 使用.


  • 臉書粉絲專頁搜尋 (FPSearch)

    不用登入臉書即可搜尋臉書粉絲專頁(臉書粉絲團)所公開的文章。您可以指定特定日期範圍之前的文章,也可設定搜尋粉絲專頁內包含特定關鍵詞的文章。


  • 下一班公車(nextBus)

    這個 app 只要開啟後,就根據定位幫你過濾出附近站牌的時刻表,以及提供相關公車預計到站的時間,方便您在很快時間內確定要坐的哪一班公車


  • 當令蔬果花卉(AgriInfo)

    是不是常常在超市看到水果蔬菜的價格,總是不確定是當季蔬果?這個服務就是幫你很快判斷眼前的蔬果花卉的價格是否便宜。


  • 標案快訊

    讓你可以輕鬆追蹤含有您想要關注關鍵詞的任何採購標案,只要有最新的資訊,「標案快訊」即會推播通知給你.