MySQL 事务 ROLLBACK 示例代码

发布于 2022-09-06 19:52:07 字数 2049 浏览 17 评论 0

  1. mysql>
  2. mysql> delimiter $$
  3. mysql>
  4. mysql> CREATE PROCEDURE myProc(
  5.     ->   in_from INTEGER,
  6.     ->   in_to   INTEGER,
  7.     ->   in_amount DECIMAL(8,2))
  8.     -> BEGIN
  9.     ->
  10.     ->   DECLARE txn_error INTEGER DEFAULT 0 ;
  11.     ->
  12.     ->   DECLARE CONTINUE HANDLER FOR SQLEXCEPTION BEGIN
  13.     ->     SET txn_error=1;
  14.     ->   END;
  15.     ->
  16.     ->   SAVEPOINT savepoint_tfer;
  17.     ->
  18.     ->   UPDATE employee
  19.     ->      SET salary=in_amount
  20.     ->    WHERE id=in_from;
  21.     ->
  22.     ->   IF txn_error THEN
  23.     ->     ROLLBACK TO savepoint_tfer;
  24.     ->     SELECT 'Transfer aborted ';
  25.     ->   ELSE
  26.     ->     UPDATE employee
  27.     ->        SET salary=in_amount
  28.     ->      WHERE id=in_to;
  29.     ->
  30.     ->      IF txn_error THEN
  31.     ->         ROLLBACK TO savepoint_tfer;
  32.     ->         SELECT 'Transfer aborted ';
  33.     ->      END IF;
  34.     ->   END IF;
  35.     ->
  36.     -> END$$
  37. Query OK, 0 rows affected (0.00 sec)

复制代码

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文