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

Khóa một hàng trong bảng MYSQL trong một giao dịch

sử dụng select ... for update truy vấn bên trong giao dịch sẽ cung cấp cho bạn ngữ nghĩa bạn muốn - các bản cập nhật khác sẽ bị khóa và các phiên khác cố gắng thực hiện cùng một khóa này sẽ bị chặn cho đến khi bạn cam kết:

START TRANSACTION
SELECT * FROM piggybank WHERE id IN (1, 2) FOR UPDATE;
SELECT amount FROM piggybank WHERE id = 2;
UPDATE piggybank SET amount = amount + 5 WHERE id = 1;
COMMIT



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. ProxySQL:Tất cả các tài nguyên của Somenines

  2. Nhóm MySQL theo dấu thời gian tùy chỉnh

  3. Jar trong thư viện bên ngoài nhưng không thể nhập trong mã

  4. Sự cố thay thế biến Hệ thống MySQL Build Sublime Text

  5. Tại sao tôi gặp lỗi JPEG 42 khi nó được lưu trữ trong cơ sở dữ liệu?