Oracleでは、遅延制約はコミットの時点でのみチェックされます。
NOT NULL制約の場合のDEFERRABLE句の意味は何ですか?例えば
create table test(a number not null deferrable, b number);
insert into test(a,b) values (222, 111);
commit;
これらのステートメントの後、私は次のコードが機能すると思いました
update test set a = null where b = 111;
delete test where b = 111;
commit;
しかし、そうではありません。
2つの定義の違いは何ですか?
create table test1(a number not null deferrable, b number);
create table test2(a number not null, b number);