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

ORACLE Sau khi kích hoạt cập nhật:giải quyết lỗi bảng đột biến ORA-04091

"Có cách nào để tránh lỗi bảng thay đổi mà không sử dụng bảng tạm thời cho các giá trị hoặc giao dịch tự trị không?"

tl; dr không.

Lỗi bảng thay đổi là do truy vấn bảng sở hữu trình kích hoạt hoặc các bảng có liên quan đến mối quan hệ khóa ngoại với bảng sở hữu (ít nhất là trong các phiên bản cũ hơn của cơ sở dữ liệu, không chắc liệu nó có còn nhận được hay không).

Trong một ứng dụng được thiết kế phù hợp, điều này không cần thiết. Đây là lý do tại sao nhiều người coi các bảng đột biến là một chỉ báo của mô hình dữ liệu kém. Ví dụ:đột biến thường liên quan đến việc chuẩn hóa không đủ.

Diễn giải Jamie Zawinski:Một số người, khi đối mặt với một ngoại lệ bảng đột biến, nghĩ rằng "Tôi biết, tôi sẽ sử dụng các giao dịch tự trị." Bây giờ họ có hai vấn đề.

Đôi khi có thể tránh được lỗi bằng cách chỉ cần sửa đổi:Giá trị MỚI trong trình kích hoạt CHÈN TRƯỚC HOẶC CẬP NHẬT hoặc bằng cách sử dụng các cột ảo. Nhưng bạn sẽ cần đăng thêm chi tiết để xem liệu những điều này có áp dụng hay không.

Nhưng cách giải quyết tốt nhất là không cần bất kỳ loại nào khác.




  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 tránh lỗi đột biến bảng

  2. Sử dụng hàm Max () để chọn giá trị nhóm

  3. Cách kiểm tra thống kê cũ

  4. Giới thiệu về phần tử định dạng RM trong Oracle

  5. Câu lệnh FORALL với mệnh đề giá trị-OF Bound trong cơ sở dữ liệu Oracle