ORACLE MASTER Silver SQL 26aiキーとリレーションの許容値オリジナル・公式資料照合難易度★★★☆☆
Oracle AI Database 26aiで、空のt(code VARCHAR2(5) UNIQUE)へNULL、NULL、'X'をこの順に登録できた。追加のNOT NULL制約・トリガーはない。続いてもう一度'X'をINSERTする場合の説明はどれか。
A
2つ目の'X'は失敗する。複数のNULLがあること自体はこの一意制約に違反しない★ 正解
単一列のUNIQUEとNOT NULLを別の制約として扱った正しい判断である。
B
2つ目の'X'も、UNIQUEは非NULL値を検査しないので成功する
UNIQUEは非NULLのキー値の重複を禁止する。NULLの扱いから逆の結論にはならない。
C
2つ目の'X'のINSERTは成功し、先にあった'X'の行を上書きする
INSERTは重複キーの既存行を自動更新する操作ではない。この定義では一意制約違反になる。
D
UNIQUEには暗黙のNOT NULLも含まれるため、最初のNULLで失敗していた
UNIQUE単独はNULLを許す。NOT NULLも併せ持つPRIMARY KEYとの混同である。
解説
単一列UNIQUE制約は複数のNULLを許すが、非NULLの同じ値を複数行へ登録することは許さない。したがって先行3行は有効で、2つ目のXのINSERTだけが一意制約違反になる。主キーはNULLも許さないため性質が異なる。
根拠資料・確認情報
対応範囲:ORACLE MASTER Silver SQL 26ai(1Z0-171-JPN)
資料確認日:2026-10-30
同じレッスンの問題
問題 1
Oracle AI Database 26aiで次の表を作り、(10,2)だけを登録した。追加制約・トリガーはなく、制約は有効で即時検査される。A、Bをそれぞれ試すときの結果はどれか。
CREATE TABLE pairs(a NUMBER,b NUMBER,PRIMARY KEY(a,b));
A: INSERT INTO pairs VALUES(10,3);
B: INSERT INTO pairs VALUES(10,2);
問題 2
Oracle AI Database 26aiでp(id PRIMARY KEY)には10だけがある。空のcは次の定義で作成済みで、追加制約・トリガーはなく、外部キーは即時検査される。A、Bの成否はどれか。
CREATE TABLE c(id NUMBER PRIMARY KEY,dept NUMBER REFERENCES p(id));
A: INSERT INTO c VALUES(1,NULL);
B: INSERT INTO c VALUES(2,99);