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

CẬP NHẬT với CHỌN, nó sẽ khóa từng hàng hoặc tất cả các bản ghi đã CHỌN

UPDATE đang chạy trong giao dịch - đó là một atomic hoạt động, có nghĩa là nếu một trong các hàng bị lỗi (ví dụ:vì ràng buộc duy nhất), nó sẽ không cập nhật bất kỳ hàng nào trong số 5000 hàng. Đây là một trong những thuộc tính ACID của cơ sở dữ liệu giao dịch.

Vì điều này mà UPDATE giữ khóa trên tất cả các hàng cho toàn bộ giao dịch. Nếu không, một giao dịch khác có thể cập nhật thêm giá trị của một hàng, dựa trên giá trị hiện tại của hàng đó (giả sử cập nhật bản ghi đặt giá trị =giá trị * '2'). Câu lệnh này sẽ tạo ra kết quả khác nhau tùy thuộc vào giao dịch đầu tiên cam kết hoặc quay trở lại. Do đó, nó phải đợi giao dịch đầu tiên hoàn thành tất cả 5000 bản cập nhật.

Nếu bạn muốn giải phóng ổ khóa, chỉ cần cập nhật theo lô (nhỏ hơn).

P.S. autocommit kiểm soát nếu mỗi câu lệnh được phát hành trong giao dịch riêng, nhưng không ảnh hưởng đến việc thực hiện một truy vấn duy nhất




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Một cột cụ thể không được chèn khi lưu bản ghi

  2. Tôi có thể lưu trữ giá dưới dạng số thập phân hoặc Số nguyên trong Mysql không?

  3. IP của tôi có trong cơ sở dữ liệu của tôi không, nếu có hãy tìm dấu thời gian

  4. MySQL giải thích sự hiểu biết về truy vấn

  5. Giữ các ký tự đặc biệt khi nhập vào mysql từ csv