- ベストアンサー
Oracleシルバーの問題です。
翔泳社オラクルマスター教科書Silverを使ってシルバー取得の勉強をしています。 その中でわからない点があったので教えてください。 1.CONSTRAINT EMP_FK1 FOREIGN KEY(MGR) REFERENCES EMP(EMPNO) 2.CONSTRAINT EMP_FK2 REFERENCES DEPT(DEPTNO) というふたつの制約文で、1.が正解で2が不正解となっているのですが、逆じゃないかな?と思うんです。 だって制約文の構文は 列名 データ型 ,[CONSTRAINT 制約名] 制約 ,[CONSTRAINT 制約名] 制約... とあります。 1.は","で区切ってないから間違いだと思うんですがどうでしょうか? どなたか解説していただけないでしょうか。 宜しくお願いいたします☆
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
こういうことですかね。 http://cgi.html.ne.jp/~nika/orcl_mst/schema-object/2_1_table.html CREATE TABLE時に、列に対して制約をかけるときは2の構文、表に対して制約を書けるときは1の構文。 で、問題はどちらだったんでしょう? #ちなみに、PRIMARY KEY制約、FOREIGN KEY制約は、実務で列に対してかけることはめったにないもんで(^^;;;; ついでに、CREATE TABLE時につけることもあんまりないです。
その他の回答 (2)
- osamuy
- ベストアンサー率42% (1231/2878)
2.のほうは、従業員コードに部門コードへのリレーションを張っているように思えます。そこが間違いなのでは。 あてずっぽうですが。
お礼
こんばんわ☆ あっほんとですね~~ なんかリレーション貼ってる場所が違うような気もしますネ! 参考になります。ありがとうございました!
- taka_tetsu
- ベストアンサー率65% (1020/1553)
では、2の制約の種類は何でしょう? ちなみに1は、外部キー(FOREIGN KEY)制約です。 REFERENCESは制約の名前ではないですよ。
お礼
こんばんわ☆回答ありがとうございます!! あれれ?? でも教科書にはFOREIGN KEY制約を定義する例文として CONSTRAINT FK_部署NO REERENCES 部署(部署NO) って書いてあるんです~! だからREFERENCESはFOREIGN KEYを定義するために使うんだと思ってました。 うう~ん わからなくなってしまいました・・
お礼
こんばんわ! あー!! ほんとだ制約って表構文と列構文があるんですね。 問題をよく見たら「表制約構文を選びなさい」って書いてありました! 問題文全然読んでませんでした(笑) すみません、助かりました☆ ありがとうございました!