こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

Oracleシルバーの問題です。

翔泳社オラクルマスター教科書Silverを使ってシルバー取得の勉強をしています。
その中でわからない点があったので教えてください。

1.CONSTRAINT EMP_FK1 FOREIGN KEY(MGR) REFERENCES EMP(EMPNO)

2.CONSTRAINT EMP_FK2 REFERENCES DEPT(DEPTNO)

というふたつの制約文で、1.が正解で2が不正解となっているのですが、逆じゃないかな?と思うんです。

だって制約文の構文は
列名 データ型
,[CONSTRAINT 制約名] 制約
,[CONSTRAINT 制約名] 制約...

とあります。
1.は","で区切ってないから間違いだと思うんですがどうでしょうか?
どなたか解説していただけないでしょうか。
宜しくお願いいたします☆

投稿日時 - 2003-08-31 12:53:20

QNo.642531

暇なときに回答ください

質問者が選んだベストアンサー

こういうことですかね。

http://cgi.html.ne.jp/~nika/orcl_mst/schema-object/2_1_table.html

CREATE TABLE時に、列に対して制約をかけるときは2の構文、表に対して制約を書けるときは1の構文。

で、問題はどちらだったんでしょう?

#ちなみに、PRIMARY KEY制約、FOREIGN KEY制約は、実務で列に対してかけることはめったにないもんで(^^;;;;
ついでに、CREATE TABLE時につけることもあんまりないです。

参考URL:http://cgi.html.ne.jp/~nika/orcl_mst/schema-object/2_1_table.html

投稿日時 - 2003-09-01 01:15:22

お礼

こんばんわ!

あー!!
ほんとだ制約って表構文と列構文があるんですね。
問題をよく見たら「表制約構文を選びなさい」って書いてありました!
問題文全然読んでませんでした(笑)

すみません、助かりました☆
ありがとうございました!

投稿日時 - 2003-09-01 22:55:31

このQ&Aは役に立ちましたか?

2人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.3

2.のほうは、従業員コードに部門コードへのリレーションを張っているように思えます。そこが間違いなのでは。

あてずっぽうですが。

投稿日時 - 2003-09-01 21:13:29

お礼

こんばんわ☆

あっほんとですね~~
なんかリレーション貼ってる場所が違うような気もしますネ!
参考になります。ありがとうございました!

投稿日時 - 2003-09-01 22:56:38

ANo.1

では、2の制約の種類は何でしょう?

ちなみに1は、外部キー(FOREIGN KEY)制約です。

REFERENCESは制約の名前ではないですよ。

投稿日時 - 2003-08-31 23:18:38

お礼

こんばんわ☆回答ありがとうございます!!

あれれ??
でも教科書にはFOREIGN KEY制約を定義する例文として

CONSTRAINT FK_部署NO REERENCES 部署(部署NO)

って書いてあるんです~!

だからREFERENCESはFOREIGN KEYを定義するために使うんだと思ってました。
うう~ん わからなくなってしまいました・・

投稿日時 - 2003-09-01 00:08:08

あなたにオススメの質問