問題ID: 19932
- フォーラムは新サイトへ移行しました。
- このフォーラムではゲスト投稿が禁止されています
問題ID: 19932
msg# 1
hide0129
投稿数: 2
INSERT INTO prod2
VALUES (1, (SELECT name FROM prod WHERE prodid = 1),
(SELECT category FROM prod WHERE prodid = 1), SYSDATE, NULL);
副問合せが複数行を返すためエラーとなる
正常に実行される
→この問題prodidにNOT NULL制約が記載されていますが、PRIMARY KEY制約は記載されていないため、prodid = 1が複数あった場合には副問い合わせが複数行を返すためエラーとなりませんか?
VALUES (1, (SELECT name FROM prod WHERE prodid = 1),
(SELECT category FROM prod WHERE prodid = 1), SYSDATE, NULL);
副問合せが複数行を返すためエラーとなる
正常に実行される
→この問題prodidにNOT NULL制約が記載されていますが、PRIMARY KEY制約は記載されていないため、prodid = 1が複数あった場合には副問い合わせが複数行を返すためエラーとなりませんか?
Re: 問題ID: 19932
msg# 1.1
quensan
投稿数: 119
>この問題prodidにNOT NULL制約が記載されていますが、PRIMARY KEY制約は記載されていないため、
問題のPROD表の構造はDESCRIBEコマンドの出力結果と思われます(実試験でも表の構造はそうだったような)。
なのでNOT NULLしか明記されてないですが、問題集用のsetup.sql(12c問題集のTopからダウンロードできるSQL文)のCREATE文ではPROD表のprodidにPRIMARY KEYは定義されていました。
SQL文流して確認してみました。
SQL> desc prod
名前 NULL? 型
----------------------------------------- -------- -----------
PRODID NOT NULL NUMBER(2)
NAME VARCHAR2(20)
CATEGORY NUMBER(2)
STARTDATE DATE
ENDDATE DATE
SQL> select constraint_type from user_constraints where table_name = 'PROD';
C
-
P
でも確かに、問題からはprodidが一意であるとは判断できませんね。条件として明記してほしいです。
問題のPROD表の構造はDESCRIBEコマンドの出力結果と思われます(実試験でも表の構造はそうだったような)。
なのでNOT NULLしか明記されてないですが、問題集用のsetup.sql(12c問題集のTopからダウンロードできるSQL文)のCREATE文ではPROD表のprodidにPRIMARY KEYは定義されていました。
SQL文流して確認してみました。
SQL> desc prod
名前 NULL? 型
----------------------------------------- -------- -----------
PRODID NOT NULL NUMBER(2)
NAME VARCHAR2(20)
CATEGORY NUMBER(2)
STARTDATE DATE
ENDDATE DATE
SQL> select constraint_type from user_constraints where table_name = 'PROD';
C
-
P
でも確かに、問題からはprodidが一意であるとは判断できませんね。条件として明記してほしいです。
Re: 問題ID: 19932
msg# 1.2
staff_meg
投稿数: 427
hide0129さん
quensanさん
ご指摘の点を修正致しました。
ご報告、誠にありがとうございました。
quensanさん
ご指摘の点を修正致しました。
ご報告、誠にありがとうございました。