【問題ID: 8505】について
- フォーラムは新サイトへ移行しました。
- このフォーラムではゲスト投稿が禁止されています
【問題ID: 8505】について
msg# 1
ikoma_guro
投稿数: 2
初めてココを利用させて頂きます。
下記、表の作成と管理について質問させてください。
以下、問題文。
次のSQL文のうち、エラーとなるものはどれですか(該当するものを全て選択して下さい)。
CREATE TABLE temp
(
id NUMBER(2) CONSTRAINT id_uq UNIQUE NOT NULL,
name VARCHAR2(10) CONSTRAINT name_nn NOT NULL,
birth DATE,
CONSTRAINT temp_uq UNIQUE(id, name)
);
・・・・・
【質問】
上記のCreate文は、列制約になるのでしょうか?表制約なのでしょうか?
私としては、列制約と表制約が混ざっているCreate文だと思い、エラーになる認識だったんですが。。。
どなたか、ご教授の程お願い致します。
下記、表の作成と管理について質問させてください。
以下、問題文。
次のSQL文のうち、エラーとなるものはどれですか(該当するものを全て選択して下さい)。
CREATE TABLE temp
(
id NUMBER(2) CONSTRAINT id_uq UNIQUE NOT NULL,
name VARCHAR2(10) CONSTRAINT name_nn NOT NULL,
birth DATE,
CONSTRAINT temp_uq UNIQUE(id, name)
);
・・・・・
【質問】
上記のCreate文は、列制約になるのでしょうか?表制約なのでしょうか?
私としては、列制約と表制約が混ざっているCreate文だと思い、エラーになる認識だったんですが。。。
どなたか、ご教授の程お願い致します。
Re: 【問題ID: 8505】について
msg# 1.1
arashi1977
居住地: 広島
投稿数: 1715
引用:両方、じゃないかと。
参考URL1個目の先でも
引用:とありますので、この選択肢の場合
・id列は一意キー指定された列
・複合一意キーとしてid, name列が表外に指定されている。
・id列は主キーではないので、参考URLの記述にある制限事項「同一の列または列の組合せを一意キーと主キーの両方には指定できません。」には該当しない
ですので、エラーにならないです。
実行環境も作って確認されるとよいかと思います。
参考:
http://ping-t.com/modules/forum/index.php?topic_id=2294
上記のCreate文は、列制約になるのでしょうか?表制約なのでしょうか?
参考URL1個目の先でも
引用:
一意制約は、列を一意キーとして指定します。複合一意キーは、列の組合せを一意キーとして指定します。一意制約を表内に定義する場合に必要となるのは、UNIQUEキーワードのみです。一意制約を表外に定義する場合は、1つ以上の列も指定する必要があります。複合一意キーは、表外に定義する必要があります。
一意制約を満たすには、表の中の2つの行が一意キーに対して同じ値を持たないようにする必要があります。
・id列は一意キー指定された列
・複合一意キーとしてid, name列が表外に指定されている。
・id列は主キーではないので、参考URLの記述にある制限事項「同一の列または列の組合せを一意キーと主キーの両方には指定できません。」には該当しない
ですので、エラーにならないです。
実行環境も作って確認されるとよいかと思います。
参考:
http://ping-t.com/modules/forum/index.php?topic_id=2294
Re: 【問題ID: 8505】について
msg# 1.1.1
ikoma_guro
投稿数: 2
回答ありがとうございます。
そもそもの話、列制約と表制約を混合することができるんですね!
そのことを知らず、実行環境で試してもエラーにならなかったので、質問させて頂きました。
すっきりしました、ありがとうございます。
そもそもの話、列制約と表制約を混合することができるんですね!
そのことを知らず、実行環境で試してもエラーにならなかったので、質問させて頂きました。
すっきりしました、ありがとうございます。