mysql 存储过程 事务

时间:2009-09-17 02:22 作者:mysql问答 点击:
mysql 存储过程 事务 捕捉到错误进行roolback

  

mysql 存储过程 事务 捕捉到错误进行roolback
 

案例一

 

 

  1. mysql> DELIMITER $$  
  2. mysql> DROP PROCEDURE IF EXISTS `transaction1`$$  
  3. Query OK, 0 rows affected (0.00 sec)  
  4.  
  5. mysql> CREATE PROCEDURE transaction1()  
  6.     -> BEGIN 
  7.     ->  set autocommit = 0;  
  8.     ->  insert IGNORE into t3 (id) values (1);  
  9.     ->  insert IGNORE into t3 (idrr) values (2);  
  10.     ->  if @@warning_count  <> 0 then 
  11.     ->          rollback;  
  12.     ->  else 
  13.     ->          commit;  
  14.     ->  end if;  
  15.     -> END$$  
  16. Query OK, 0 rows affected (0.00 sec)  
  17.  
  18. mysql> DELIMITER ;  
  19. mysql> call transaction1();  
  20. Query OK, 0 rows affected, 1 warning (0.06 sec)  
  21.  
  22. mysql> select * from t3;  
  23. Empty set (0.00 sec)  
  24.  
  25. mysql>  

 

案例二

 

 

  1. mysql> DELIMITER $$  
  2. mysql> DROP PROCEDURE IF EXISTS `transaction1`$$  
  3. Query OK, 0 rows affected (0.00 sec)  
  4.  
  5. mysql> CREATE PROCEDURE transaction1()  
  6.     -> BEGIN 
  7.     ->  set autocommit = 0;  
  8.     ->  insert IGNORE into t3 (id) values (1);  
  9.     ->  insert IGNORE into t3 (idrr) values (2);  
  10.     ->  if @@warning_count  <> 0 ||@@error_count>0 then 
  11.     ->          rollback;  
  12.     ->  else 
  13.     ->          commit;  
  14.     ->  end if;  
  15.     -> END$$  
  16. Query OK, 0 rows affected (0.00 sec)  
  17.  
  18. mysql> DELIMITER ;  
  19. mysql> call transaction1();  
  20. Query OK, 0 rows affected, 1 warning (0.06 sec)  
  21.  
  22. mysql> select * from t3;  
  23. Empty set (0.00 sec)  
  24.  
  25. mysql>  

 


标签(Tag):mysql 事务 roolback
------分隔线----------------------------
推荐内容
热点内容