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

Cách kiểm tra lựa chọn để cập nhật trong MySQL

mở 2 phiên khách hàng mysql.

vào phiên 1:

mysql> start transaction;

mysql> SELECT * FROM table_name WHERE cond FOR UPDATE;

... (result here) ...

1 row in set (0.00 sec)

vào phiên 2:

mysql> start transaction;

mysql> SELECT * FROM table_name WHERE cond FOR UPDATE;

... (no result yet, will wait for the lock to be released) ...

quay lại phiên 1, để cập nhật bản ghi đã chọn (và mở khóa):

mysql> UPDATE table_name SET something WHERE cond;

mysql> commit;

quay lại phiên 2:

1) hiển thị lỗi thời gian chờ khóa

ERROR 1205 (HY000): Lock wait timeout exceeded; try restarting transaction

2) hoặc hiển thị kết quả

... (result here) ...

1 row in set (0.00 sec)

3) hoặc không hiển thị kết quả (vì bản ghi tương ứng đã được sửa đổi, do đó điều kiện cụ thể không được đáp ứng)

Empty set (0.00 sec)


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cách dễ nhất để sao chép cơ sở dữ liệu MySQL?

  2. # 1075 - Định nghĩa bảng không chính xác; chỉ có thể có một cột tự động và nó phải được xác định là một khóa

  3. Mysql:Làm thế nào để truy vấn một cột có kiểu là bit?

  4. Đặt kết quả truy vấn Mysql vào mảng bên trong một lớp

  5. Phân trang Ajax với Jquery, PHP, Mysql