ocp-047-61

61. Evaluate the following SQL statements that are issued in the given order: 
CREATE TABLE emp 
(emp_no NUMBER(2) CONSTRAINT emp_emp_no_pk PRIMARY KEY, 
ename VARCHAR2(15), 
salary NUMBER(8,2), 
mgr_no NUMBER(2) CONSTRAINT emp_mgr_fk REFERENCES emp); 
ALTER TABLE emp DISABLE CONSTRAINT emp_emp_no_pk CASCADE; 
ALTER TABLE emp ENABLE CONSTRAINT emp_emp_no_pk; 
What would be the status of the foreign key EMP_MGR_FK? 
A. It would be automatically enabled and deferred. 
B. It would be automatically enabled and immediate. 
C. It would remain disabled and has to be enabled manually usin g the ALTER 

TABLE command. 

D. It would remain disabled and can be enabled only by dropping the foreign 

key constraint and recreating it. 

实验



CREATE TABLE emp 
(emp_no NUMBER(2) CONSTRAINT emp_emp_no_pk PRIMARY KEY, 
ename VARCHAR2(15), 
salary NUMBER(8,2), 
mgr_no NUMBER(2) CONSTRAINT emp_mgr_fk REFERENCES emp); 
ALTER TABLE emp DISABLE CONSTRAINT emp_emp_no_pk CASCADE; 
ALTER TABLE emp ENABLE CONSTRAINT emp_emp_no_pk; 

SQL> select t.table_name,
  2         t.constraint_name,
  3         t.constraint_type,
  4         t.status,
  5         t.deferrable,
  6         t.deferred,
  7         t.validated
  8    from user_constraints t
  9   where table_name = 'EMP'
 10  ;
 
TABLE_NAME                     CONSTRAINT_NAME                CONSTRAINT_TYPE STATUS   DEFERRABLE     DEFERRED  VALIDATED
------------------------------ ------------------------------ --------------- -------- -------------- --------- -------------
EMP                            EMP_EMP_NO_PK                  P               ENABLED  NOT DEFERRABLE IMMEDIATE VALIDATED
EMP                            EMP_MGR_FK                     R               ENABLED  NOT DEFERRABLE IMMEDIATE VALIDATED

SQL> ALTER TABLE emp DISABLE CONSTRAINT emp_emp_no_pk CASCADE;
 
Table altered

SQL> select t.table_name,
  2         t.constraint_name,
  3         t.constraint_type,
  4         t.status,
  5         t.deferrable,
  6         t.deferred,
  7         t.validated
  8    from user_constraints t
  9   where table_name = 'EMP'
 10  ;
 
TABLE_NAME                     CONSTRAINT_NAME                CONSTRAINT_TYPE STATUS   DEFERRABLE     DEFERRED  VALIDATED
------------------------------ ------------------------------ --------------- -------- -------------- --------- -------------
EMP                            EMP_EMP_NO_PK                  P               DISABLED NOT DEFERRABLE IMMEDIATE NOT VALIDATED
EMP                            EMP_MGR_FK                     R               DISABLED NOT DEFERRABLE IMMEDIATE NOT VALIDATED

SQL> ALTER TABLE emp ENABLE CONSTRAINT emp_emp_no_pk; 
 
Table altered
 
SQL> 
SQL> select t.table_name,
  2         t.constraint_name,
  3         t.constraint_type,
  4         t.status,
  5         t.deferrable,
  6         t.deferred,
  7         t.validated
  8    from user_constraints t
  9   where table_name = 'EMP'
 10  ;
 
TABLE_NAME                     CONSTRAINT_NAME                CONSTRAINT_TYPE STATUS   DEFERRABLE     DEFERRED  VALIDATED
------------------------------ ------------------------------ --------------- -------- -------------- --------- -------------
EMP                            EMP_EMP_NO_PK                  P               ENABLED  NOT DEFERRABLE IMMEDIATE VALIDATED
EMP                            EMP_MGR_FK                     R               DISABLED NOT DEFERRABLE IMMEDIATE NOT VALIDATED


61. Evaluate the following SQL statements that are issued in the given order:
CREATE TABLE emp (
   emp_no NUMBER(2) CONSTRAINT emp_emp_no_pk PRIMARY KEY,
   ename VARCHAR2(15),
   salary NUMBER(8,2),
   mgr_no NUMBER(2) CONSTRAINT emp_mgr_fk REFERENCES emp
   );
创建表时声明的主键约束和外键约束自动生效


ALTER TABLE emp DISABLE CONSTRAINT emp_emp_no_pk CASCADE;
disable主键约束时使用cascade会使这个主键上的外键约束同时失效


ALTER TABLE emp ENABLE CONSTRAINT emp_emp_no_pk;
enable主键约束使之生效,但是外键约束还是失效状态


What would be the status of the foreign key EMP_MGR_FK?
A. It would be automatically enabled and deferred.
外键约束是失效状态,并且没有声明deferred的时候应该是nodeferrable immediate状态


B. It would be automatically enabled and immediate.
外键约束是失效状态,并且没有声明deferred的时候应该是nodeferrable immediate状态


C. It would remain disabled and has to be enabled manually using the ALTER TABLE command.(right)
需要手动显式声明


D. It would remain disabled and can be enabled only by dropping the foreign key constraint and recreating it.
不用将约束删除并重新建立,只要通过alter table就可以了


 


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值