0

我在一个update内部存储过程中使用了一个内部存储过程loop(一个获取行并一次遍历一行的循环)。

我怎么知道那里的更新是否真的成功了,所以根据它的成功,我可以更新其他东西吗?

例子:

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 中是否有任何东西可以检查更新是否成功?

4

1 回答 1

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 命令

于 2013-09-29T11:27:44.613 回答