Tôi đang làm việc trên một ứng dụng web được kết nối với oracle. Chúng tôi có một bảng trong oracle với một cột "kích hoạt". Chỉ có một hàng có thể đặt cột này thành 1 tại một thời điểm bất kỳ. Để thực thi điều này, chúng tôi đã sử dụng mức cô lập SERIALIZED trong Java, tuy nhiên chúng tôi đang chạy vào lỗi "không thể tuần tự hóa giao dịch" và không thể giải thích tại sao.ĐỌC KẾT NỐI mức cô lập cơ sở dữ liệu trong oracle
Chúng tôi đã tự hỏi liệu mức độ cô lập của READ COMMITTED có thực hiện công việc hay không. Vì vậy, câu hỏi của tôi là thế này:
Nếu chúng ta có một giao dịch mà liên quan đến SQL sau:
SELECT *
FROM MODEL;
UPDATE MODEL
SET ACTIVATED = 0;
UPDATE MODEL
SET ACTIVATED = 1
WHERE RISK_MODEL_ID = ?;
COMMIT;
Do đó, có thể cho nhiều hơn một trong các giao dịch này được thực hiện cùng một lúc, sẽ nó có thể cho nhiều hơn một hàng MODEL để có cờ kích hoạt được đặt thành 1?
Mọi trợ giúp sẽ được đánh giá cao.
tương tự, nhưng tôi muốn KHÓA MODEL trong chế độ ĐỘC QUYỀN và làm một CẬP NHẬT MODEL SET ACTIVATED = 0 Ở ĐÂU kích hoạt = 1 Ít hàng được cập nhật, vì vậy nó là hơi nhiều performant, và TABLE KHÓA sẽ ngăn chặn các hoạt động đồng thời trên bàn. –