sql >> Databáze >  >> RDS >> Mysql

Vrácení transakce Mysql při selhání aktualizace

Zde je v PHP (netestováno, je třeba přizpůsobit vaší situaci):

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');
}

Nebo, pokud chcete být chytrý a udělat to v SQL (pomocí ROW_COUNT() a 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. Ukládání hodnot hash SHA1 v MySQL

  2. Propojte mySQL s Androidem

  3. Dotaz Mysqli s příkazem proměnné SET (tj. více dotazů)

  4. Nejlepší způsob, jak vybrat náhodné řádky PostgreSQL