助け合いフォーラム
OSS-DB Silver(Ver3.0)
問題ID : 35415
問題を開く
次のSQL文が実行された。
CREATE TABLE address(id CHAR(4) UNIQUE, postnum CHAR(7), address VARCHAR);
CREATE TABLE customer(id CHAR(7) PRIMARY KEY, name VARCHAR, addressid CHAR(4) REFERENCES address(id));
IN...
この問題はプレミアムコンテンツです。
解説について
k
k650250
投稿日 2024/04/27
「この問題の場合は、外部キーにユニーク制約が設定されているため、NULLを格納することも可能です。」は、「この問題の場合は、外部キーにユニーク制約が設定されていないため、NULLを格納することも可能です。」ではないのでしょうか?
r
rink_rew
2024/04/30 12:34
この問題の場合は、外部キーにユニーク制約が設定されているため、NULLを格納することも可能です。
解説のこの文章は、参照先のテーブルのカラムには「主キー制約」または「ユニーク制約」が設定されている必要がある、という外部キー制約作成時の条件が前提になっていると思います。(参考: 問題ID35376)
- 外部キー作成時には、参照先のテーブルのカラムに「主キー制約」または「ユニークキー制約」が必要
↓ - この問題では、参照先のテーブルのカラムに「ユニーク制約」が設定されている
↓ - 従って、「customer」テーブルの「addressid」カラムに対して、NULLを格納することも可能
ただ、この問題の解説の文章だけ読むと、もう少し補足があっても良いかなと感じますね。
コメント
スタッフからの返信
この投稿に対して返信しませんか?
s staff_ishii
2024/04/30 14:00
k650250 さん、rink_rew さん ご指摘の点について、加筆・修正を行いました。 ご報告、誠にありがとうございました。