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

ROWID (oracle) - bất kỳ công dụng nào cho nó?

ROWID là vị trí thực của một hàng. Do đó, đây là cách nhanh nhất để định vị một hàng, nhanh hơn cả tra cứu khóa chính. Vì vậy, nó có thể hữu ích trong một số loại giao dịch nhất định trong đó chúng tôi chọn một số hàng, lưu trữ ROWID của chúng và sau đó sử dụng ROWID trong where các mệnh đề cho DML đối với các hàng tương tự.

Cú pháp Oracle SELECT ... FOR UPDATE sử dụng hoàn toàn ROWID, khi chúng tôi cập nhật hàng bị khóa bằng cách sử dụng WHERE CURRENT OF. Ngoài ra, bảng EXCEPTIONS (được tham chiếu khi áp dụng các ràng buộc với mệnh đề EXCEPTIONS INTO) có một cột ROW_ID. Điều này cho phép chúng tôi nhanh chóng xác định các hàng đang phá vỡ ràng buộc của chúng tôi.

Ví dụ sau chỉ ra một cách sử dụng chung khác:khi chúng ta đang viết một số đoạn mã chung và cần một cơ chế để lưu trữ UID mà không cần quan tâm đến kiểu dữ liệu, khóa tổng hợp, v.v.

Mặt khác, ROWNUM là một cột giả gắn thẻ một hàng trong một tập kết quả nhất định. Nó không có ý nghĩa vĩnh viễn.

chỉnh sửa

ROWID cho một bản ghi nhất định có thể thay đổi trong suốt thời gian tồn tại của hệ thống, chẳng hạn như thông qua việc xây dựng lại bảng. Ngoài ra, nếu một bản ghi bị xóa, một bản ghi mới có thể được cấp ROWID đó. Do đó, ROWID không thích hợp để sử dụng làm UID về lâu dài. Nhưng chúng đủ tốt để sử dụng trong giao dịch.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm thế nào để tìm các phụ thuộc bên trong một gói oracle?

  2. Bỏ người dùng được kết nối khỏi lược đồ cơ sở dữ liệu Oracle 10g

  3. ĐẶT SQLBLANKLINES:Cách Cho phép Dòng trống trong SQLcl &SQL * Plus

  4. SQL Thiếu dấu ngoặc phải theo thứ tự theo câu lệnh

  5. Lỗi SQL:ORA-01861:chữ không khớp với chuỗi định dạng 01861