zoukankan      html  css  js  c++  java
  • [每日一题] OCP1z0-047 :2013-08-18 禁用启用约束――主键与外键 ..................................61


    正确答案:C

    根据题意,测试结果如下:

    1、创建表emp,并且设emp_no字段为主键,设mgr_no字段为外键。

    gyj@MYDB> create table emp
      2   (emp_no number(2) constraint emp_emp_no_pk primary key,
      3   ename varchar2(15),
      4   salary number(8,2),
      5   mgr_no number(2) constraint emp_mgr_fk references emp);
    
    Table created.
    

    2、禁用约束主键,同时也禁用了外键

    gyj@MYDB>  alter table emp disable constraint emp_emp_no_pk cascade;   
    
    Table altered.
    

    3、查约束主键与外键是否都被禁用了,确实都被DISABLED了

    gyj@MYDB> col owner for a10
    gyj@MYDB> select  OWNER,CONSTRAINT_NAME, TABLE_NAME,STATUS from user_constraints where table_name='EMP';
    
    OWNER      CONSTRAINT_NAME                TABLE_NAME                     STATUS
    ---------- ------------------------------ ------------------------------ --------
    GYJ        EMP_EMP_NO_PK                  EMP                            DISABLED
    GYJ        EMP_MGR_FK                     EMP                            DISABLED
    

    4、启用约束主键

    gyj@MYDB> alter table emp enable constraint emp_emp_no_pk;    
    
    Table altered.
    

    5、 查约束主键与外键是否都被禁用了,只有主键被禁用了。

    gyj@MYDB> select  OWNER,CONSTRAINT_NAME, TABLE_NAME,STATUS from user_constraints where table_name='EMP';
    
    OWNER      CONSTRAINT_NAME                TABLE_NAME                     STATUS
    ---------- ------------------------------ ------------------------------ --------
    GYJ        EMP_EMP_NO_PK                  EMP                            ENABLED
    GYJ        EMP_MGR_FK                     EMP                            DISABLED
    

    6、  启用约束外键

    gyj@MYDB> alter table emp enable constraint emp_mgr_fk;    
    
    Table altered.
    

    7、此时约束外键也被禁用了

    gyj@MYDB> select  OWNER,CONSTRAINT_NAME, TABLE_NAME,STATUS from user_constraints where table_name='EMP';
    
    OWNER      CONSTRAINT_NAME                TABLE_NAME                     STATUS
    ---------- ------------------------------ ------------------------------ --------
    GYJ        EMP_EMP_NO_PK                  EMP                            ENABLED
    GYJ        EMP_MGR_FK                     EMP                            ENABLED
    

    8、禁用或启动约束主键与外键的官方文档语法图。


    9、分析

    禁用主健约束,句中指定CASCADE关键字,这样将在禁用主键约束的同时会禁用那些引用它们的FOREIGN KEY约束。如下操作:
    gyj@MYDB> alter table emp disable constraint emp_emp_no_pk cascade; 
    
    Table altered.
    

     有没有什么语?在启用主键约束时侯,同时也启动外键。如下操作报错:

    gyj@MYDB>  alter table emp enable constraint emp_emp_no_pk cascade;
     alter table emp enable constraint emp_emp_no_pk cascade
                                                     *
    ERROR at line 1:
    ORA-00933: SQL command not properly ended
    


    *特别注意的是在ENABLE主键后不会自动恢复外键(没有cascade选项),因此需要手工对引用该键的约束进行ENABLE

    如下操作:

    ALTER TABLE '子表' ENABLE CONSTRAINT '约束主键名';

    ALTER TABLE '子表' ENABLE CONSTRAINT '约束外键名';

  • 相关阅读:
    论文翻译:2003_Analysis of Two-Channel Generalized Sidelobe Canceller (GSC) With Post-Filtering
    论文翻译:2019_Speech Bandwidth Extension With WaveNet
    回声消除中的LMS和NLMS算法与MATLAB实现
    电脑组装之硬件选择
    回声消除应用平台
    OpenCV图像处理以及人脸识别
    回声消除中的自适应滤波算法综述
    市场车载音响麦克风摆放以及降噪解决方案
    车载环境下的噪声分析
    NLTK自然语言处理库
  • 原文地址:https://www.cnblogs.com/pangblog/p/3268753.html
Copyright © 2011-2022 走看看