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

Khóa bảng (đọc) độc quyền trên Oracle 10g?

Nếu bạn chỉ muốn ngăn bất kỳ phiên nào khác sửa đổi dữ liệu, bạn có thể phát hành

LOCK TABLE whatever
/

Điều này chặn các phiên khác cập nhật dữ liệu nhưng chúng tôi không thể chặn những người khác đọc nó.

Lưu ý rằng trong Oracle hiếm khi cần khóa bảng như vậy, bởi vì Oracle vận hành một chính sách nhất quán về việc đọc. Có nghĩa là nếu chúng tôi chạy một truy vấn mất mười lăm phút để chạy thì hàng cuối cùng được trả về sẽ nhất quán với hàng đầu tiên; nói cách khác, nếu tập hợp kết quả được sắp xếp theo thứ tự ngược lại, chúng tôi sẽ vẫn thấy chính xác các hàng giống nhau.

chỉnh sửa

Nếu bạn muốn triển khai hàng đợi (mà không thực sự sử dụng chức năng xếp hàng nâng cao được tích hợp sẵn ) rồi đến SELECT ... FOR UPDATE là con đường để đi. Cấu trúc này cho phép một phiên để chọn và khóa một hoặc nhiều hàng. Các phiên khác có thể cập nhật các hàng đã mở khóa. Tuy nhiên, việc thực hiện một hàng đợi chính hãng khá cồng kềnh, trừ khi bạn đang sử dụng 11g. Chỉ trong phiên bản mới nhất Oracle mới hỗ trợ SKIP LOCKED mệnh đề. Tìm hiểu thêm .



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Triển khai ứng dụng .Net với Oracle Client 11

  2. Java 1.6 và Oracle JDBC 14 setQueryTimeout không hoạt động

  3. Gọi hàm riêng trong phần thân gói

  4. oracle Chọn ngày cho các mặt hàng được bán cách nhau 1 phút

  5. thực hiện các phép tính trên dữ liệu trong loại bảng