Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

transaksi mysql - putar kembali pada pengecualian apa pun

Anda dapat menggunakan 13.6.7.2. DECLARE ... HANDLER Syntax dengan cara berikut:

DELIMITER $$

CREATE PROCEDURE `sp_fail`()
BEGIN
    DECLARE `_rollback` BOOL DEFAULT 0;
    DECLARE CONTINUE HANDLER FOR SQLEXCEPTION SET `_rollback` = 1;
    START TRANSACTION;
    INSERT INTO `tablea` (`date`) VALUES (NOW());
    INSERT INTO `tableb` (`date`) VALUES (NOW());
    INSERT INTO `tablec` (`date`) VALUES (NOW()); -- FAIL
    IF `_rollback` THEN
        ROLLBACK;
    ELSE
        COMMIT;
    END IF;
END$$

DELIMITER ;

Untuk contoh lengkap, periksa SQL Fiddle berikut ini .



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Ekspor Database MySQL Atau MariaDB

  2. Fungsi MySQL SIN() – Mengembalikan Sinus Angka di MySQL

  3. Jumlah item MySQL di dalam klausa

  4. Definisi Skema menurut DBMS

  5. Cara Mendapatkan Catatan Bulan Ini di MySQL