Hier gibt es zwei Möglichkeiten. Entweder müssen Sie die zu verschiebende Einschränkung innerhalb der Transaktion festlegen, indem Sie den unten gezeigten Befehl verwenden
SET CONSTRAINTS ALL DEFERRED;
Dies sollte vor dem UPDATE
ausgeführt werden Anweisung, die Sie definiert haben.
Alternativ können Sie die Einschränkung auf INITIALLY DEFERRED
setzen in der Tabellendefinition
create table test(a number not null initially deferred deferrable, b number);
Nachdem Sie eines dieser Dinge getan haben, sollten Sie in der Lage sein, die DML auszuführen, die Sie in der Frage haben.