2013-09-29 67 views
0

我在loop(一次獲取行並逐行讀取它們的循環)內的存儲過程中使用update檢查MySql中的更新是否成功

我該如何判斷那裏的更新是否真的成功了,所以基於它的成功,我可以更新其他東西?

例子:

OPEN cur1; 
    read_loop: LOOP 
     IF done THEN 
      LEAVE read_loop; 
      END IF; 

update tabs set checked = 1 where id = tabId 

-- Only If the above update succeeded, I'd like to set another col to 1 

If /* Above update succeeded */ then 
update tabs set updated = 1 where id = tabId 

這是如何實際進行? MySql中有什麼可以檢查更新成功嗎?

+0

這似乎是一個有關事務 – Strawberry

+0

問題,你的意思是如果檢查到的是以前其他比1? 我的意思是如果行存在,更新將始終成功。 或者你想測試該行是否存在?然後,您可以爲其他/相關查詢添加額外的存在子句。 –

+0

@LajosVeres號我只是試圖檢查是否有更新成功執行。 – jmenezes

回答

0

檢查,如果更新成功使用mysql命令:ROW_COUNT()

OPEN cur1; 
    read_loop: LOOP 
     IF done THEN 
      LEAVE read_loop; 
      END IF; 

update tabs set checked = 1 where id = tabId; 

-- Only If the above update succeeded, I'd like to set another col to 1 

If ROW_COUNT()>0 THEN 
    update tabs set updated = 1 where id = tabId; 
END IF; 

瞭解更多信息:MySql ROW_COUNT command