Тук има два варианта. Или трябва да зададете ограничението да бъде отложено в транзакцията, като използвате командата, показана по-долу
SET CONSTRAINTS ALL DEFERRED;
Това трябва да се изпълни преди извършване на UPDATE
твърдение, което сте дефинирали.
Като алтернатива можете да зададете ограничението да бъде INITIALLY DEFERRED
в дефиницията на таблицата
create table test(a number not null initially deferred deferrable, b number);
След като направите някое от тези неща, трябва да можете да стартирате DML, който имате във въпроса.