반응형
  1. /**********************************************************************************************
    -- Title : [2k5] 제약조건의 nocheck/check를 통한 비활성화/활성화
  2. -- Reference : dbrang.com
    -- Key word : alter table constraint 체크 외래키
    **********************************************************************************************/
  3. drop table t2, t1;
  4. create table t1 (a1 int primary key, b1 int);
    create table t2 (a2 int, b2 int);

  5. alter table t2
    add constraint fk_098 foreign key (a2) references t1(a1)
      , constraint ck_098 check (b2 < 5);


  6. insert into t1 values(1,1);
    insert into t1 values(2,1);
    insert into t1 values(3,1);


  7. insert into t2 values(3,1);
    insert into t2 values(4,1); --fk error


  8. alter table t2 nocheck constraint fk_098; --nocheck로 비활성화

  9. insert into t2 values(4,1); --fk 비활성화로 입력됨
    insert into t2 values(5,1);

  10. alter table t2 check constraint fk_098;  --check로 활성화

  11. insert into t2 values(1,6); --ch error

  12. alter table t2 nocheck constraint ck_098; --ch 비활성화

  13. insert into t2 values(1,6); --ch 비활성화로 입력 됨

  14. alter table t2 check constraint ck_098; --비활성화

  15. alter table t2 nocheck constraint all; --all로 모든 제약조건 비활성화(제약이 없어도 실행가능)

  16. insert into t2 values(100,100); --입력 가능

  17. alter table t2 check constraint all; --all로 모든 제약조건 활성화
    insert into t2 values(200,200); --입력 불가

반응형

+ Recent posts