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

Kembalikan transaksi Mysql pada kegagalan dalam pembaruan

Ini dalam PHP (belum diuji, perlu disesuaikan dengan situasi Anda):

mysql_query('START TRANSACTION;')
mysql_query("UPDATE posts SET status='approved' where post_id='id' AND status != 'approved';");
if (mysql_affected_rows()){
    mysql_query('COMMIT');
} else {
    mysql_query('ROLLBACK');
}

Atau, Jika Anda ingin pintar dan melakukannya dalam SQL (menggunakan ROW_COUNT() dan IF ):

START TRANSACTION;
UPDATE posts SET status='approved' where post_id='id' AND status != 'approved';
SELECT ROW_COUNT() INTO @affected_rows;
-- .. other queries ...
IF (affected_rows > 0) THEN
    COMMIT;
ELSE
    ROLLBACK;
END IF


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara menghapus catatan terakhir (dengan syarat) dari tabel di MySql

  2. Pencarian Kedekatan

  3. Bagaimana mysql memesan baris dengan nilai yang sama?

  4. Bagaimana melakukan banyak kueri ke SQL

  5. Memilih data tabel dengan pernyataan PDO