sql >> Database teknologi >  >> RDS >> Mysql

Mysql transaktion rollback ved fejl i opdatering

Her er i PHP (har ikke testet, skal tilpasses til din situation):

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

Eller hvis du vil være klog og gøre det i SQL (ved hjælp af ROW_COUNT() og 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. Få adgang til MySQL-database ved hjælp af c# på unity?

  2. Hvordan opdaterer jeg automatisk et tidsstempel i PostgreSQL

  3. Escape-værdier i SQL-forespørgsler (C# med SQL-forbindelse)

  4. Optimal MySQL-konfiguration (my.cnf)