レス
元トピ次レス
タイトル
Re: 問題ID: 8536 NOT NULL制約
フォーラム
最強WEB問題集Oracle Master 11g Bronze SQL基礎
投稿ユーザ(投稿日)
(2018/8/23)
本文
>→問題文のEMPLOYEES表のEMPLOYEE_ID列はNOT NULLとなっています。
PRIMARY KEY制約の列をdescribeコマンドで見ると、自動的に適用されたNOT NULLが表示されます。
だから問題文には「EMPLOYEES表のEMPLOYEE_ID列にはPRIMARY KEY制約だけが定義されています。」と書かれているのではないでしょうか。

SQL> create table t1 (
2 id number(4) primary key,
3 text varchar2(10)
4 );

表が作成されました。

SQL> desc t1
名前 NULL? 型
------ -------- ----------------------------
ID NOT NULL NUMBER(4)
TEXT VARCHAR2(10)

実際の制約の種類はuser_constraints表などで確認できます。constraint_typeの「P」はPRIMARY KEY制約です。

SQL> select constraint_name, constraint_type, table_name, status from user_constraints where table_name = 'T1';

CONSTRAINT_NAME CON TABLE_NAME STATUS
-------------------- --- -------------------- ------------------------
SYS_C0011069 P T1 ENABLED

>そもそも、PRIMARY KEYを設定した列には自動的にNOT NULL制約が適用されるのではないでしょうか?
解説にあるように、明示的に定義されたNOT NULL制約だけが、副問合せによって新たに作成された表にコピーされます。

レス一覧

元トピ次レス


Ping-tモバイルTOP

Copyright (c) 2010
Ping-t All rights reserved.