In Oracle i vincoli posticipati vengono controllati solo al punto di commit.colonna non nullo deferrabile
Qual è il significato della clausola DEFERRABLE in un caso di vincolo NOT NULL? Per esempio
create table test(a number not null deferrable, b number);
insert into test(a,b) values (222, 111);
commit;
Dopo queste dichiarazioni ho pensato che il seguente codice funzionerebbe
update test set a = null where b = 111;
delete test where b = 111;
commit;
ma non è così.
Qual è la differenza tra due definizioni?
create table test1(a number not null deferrable, b number);
create table test2(a number not null, b number);
Sì, hai ragione. Con INITIALLY DEFERRED il mio codice funziona. Grazie. –