返回顶部

收藏

MySQL 事务 ROLLBACK 示例代码

更多
mysql>
mysql> delimiter $$
mysql>
mysql> CREATE PROCEDURE myProc(
    ->   in_from INTEGER,
    ->   in_to   INTEGER,
    ->   in_amount DECIMAL(8,2))
    -> BEGIN
    ->
    ->   DECLARE txn_error INTEGER DEFAULT 0 ;
    ->
    ->   DECLARE CONTINUE HANDLER FOR SQLEXCEPTION BEGIN
    ->     SET txn_error=1;
    ->   END;
    ->
    ->   SAVEPOINT savepoint_tfer;
    ->
    ->   UPDATE employee
    ->      SET salary=in_amount
    ->    WHERE id=in_from;
    ->
    ->   IF txn_error THEN
    ->     ROLLBACK TO savepoint_tfer;
    ->     SELECT 'Transfer aborted ';
    ->   ELSE
    ->     UPDATE employee
    ->        SET salary=in_amount
    ->      WHERE id=in_to;
    ->
    ->      IF txn_error THEN
    ->         ROLLBACK TO savepoint_tfer;
    ->         SELECT 'Transfer aborted ';
    ->      END IF;
    ->   END IF;
    ->
    -> END$$
Query OK, 0 rows affected (0.00 sec)

标签:mysql,事务,存储过程,sql

收藏

0人收藏

支持

0

反对

0

相关聚客文章
  1. 胡 志伟 发表 2014-04-09 09:37:26 Mysql存储过程计算留存率
  2. www.tonitech.com的站长 发表 2015-08-04 08:17:43 执行MySQL使用事务的方法
  3. aGuegu 发表 2014-09-22 13:12:28 [sql] 记一次查询优化
  4. sulong 发表 2009-06-08 08:49:54 mysql用sum()等函数后始终返回一行
  5. 邓龙华 发表 2015-12-20 15:51:52 MySQL好用的数学函数
  6. 蓝鲸 发表 2017-11-26 08:17:51 使用python连接MySQL数据库
  7. lixiphp 发表 2013-06-08 13:31:15 设置MySQL数据表auto increment值
  8. OurMySQL 发表 2013-09-02 13:20:37 mysql sql优化之straight_join
  9. metaboy 发表 2013-11-06 07:45:23 关于子查询和连接的趣味小题目
  10. rming 发表 2014-07-22 08:42:00 PHP中PDO的MYSQL事务处理实例
  11. Salley 发表 2014-08-05 08:51:27 MySQL查询脚本分享_分类前十
  12. techug 发表 2015-02-05 04:36:40 MySQL编程中的6个重要的实用技巧