[SQL] MySQL 事务 ROLLBACK 示例代码 →→→→→进入此内容的聊天室

来自 , 2020-04-02, 写在 SQL, 查看 176 次.
URL http://www.code666.cn/view/5e9fb672
  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)
  38. //SQL/1233

回复 "MySQL 事务 ROLLBACK 示例代码"

这儿你可以回复上面这条便签

captcha