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 。



站內搜尋



本站其他服務

本站其他軟體



  • 當令蔬果花卉(AgriInfo)

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


  • 條碼掃描器(QRCode)

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


  • 批踢踢快訊 (pttNews)

    身為鄉民的您,是不是常常覺得現在的批踢踢 (PTT) 閱讀器,明明您就只要看幾個板,都幫您分類好,但不是您要的?甚至您只想關注某個人(或某件事)的消息,卻散布在不同東西,找出來很辛苦? 這個 App 可以解決您這些問題,快來用吧!


  • 油價快訊App (OilPrices)

    依據油價及匯率,估算台灣下週油價,另外提供三週、一年以及三年的歷史變化,以及週末下午推播通知最新油價預估或公告。


  • 股海快訊 (iNews123)

    提供特定個股新聞更新推播、股價警示推播、新聞社群分享以及每日個股收盤價等功能的股票App/股市App.


  • 姓名筆畫吉凶查詢系統

    這是一個提供中文字康熙筆畫的小軟體,並根據農民曆計算每個名字或公司名的總筆畫以及最後的吉凶數,共有四種模式