Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Khôi phục giao dịch Mysql khi không cập nhật được

Đây là bằng PHP (chưa được thử nghiệm, cần thích ứng với tình huống của bạn):

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

Hoặc, nếu bạn muốn thông minh và làm điều đó trong SQL (sử dụng ROW_COUNT() 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. Chèn vào nhiều bảng trong một truy vấn

  2. Làm thế nào để tạo biểu đồ trong MySQL?

  3. Đếm số lượt truy cập liên tiếp

  4. Mysql - kết nối với máy chủ từ xa bằng địa chỉ IP

  5. Truy vấn MySQL IN chậm khủng khiếp với truy vấn con nhưng nhanh với các giá trị rõ ràng