Có hai lựa chọn ở đây. Bạn cần đặt ràng buộc để được hoãn lại trong giao dịch bằng cách sử dụng lệnh hiển thị bên dưới
SET CONSTRAINTS ALL DEFERRED;
Điều này phải được chạy trước khi thực hiện UPDATE
tuyên bố mà bạn đã xác định.
Ngoài ra, bạn có thể đặt ràng buộc thành INITIALLY DEFERRED
trong định nghĩa bảng
create table test(a number not null initially deferred deferrable, b number);
Sau khi thực hiện một trong những điều này, bạn sẽ có thể chạy DML mà bạn có trong câu hỏi.