Rumah  >  Artikel  >  pangkalan data  >  MySQL 事务 ROLLBACK 示例代码

MySQL 事务 ROLLBACK 示例代码

WBOY
WBOYasal
2016-06-07 14:54:271489semak imbas

无详细内容 事务 ROLLBACK MySQL mysqlmysql delimiter $$mysqlmysql 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 SQLEX

事务 ROLLBACK MySQL
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)
Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn