카테고리 없음

PostgreSQL Trigger 및 Foreign Key Disable

알 수 없는 사용자 2014. 7. 3. 04:32

PostgreSQL Trigger 및 Foreign Key Disable
일반적인 Trigger의 경우는 pg_trigger에서 상태를 확인하고 Disable할 수 있다.
Foreign Key의 경우는 ORACLE처럼 바로 Disable할 수 없으므로 해당 테이블의 내부 Trigger 확인하여 Disable 한다.

--특정 테이블의 Trigger Disable
select tgname,
       tgenabled
from   pg_trigger
where  tgrelid in (select oid
                   from   pg_class
                   where  relname = 'zz_test002');
                  
--위에 조회된 결과를 기준으로 아래와 같이 해당 Trigger Disable
alter table ZZ_TEST002 disable trigger "RI_ConstraintTrigger_158846";
alter table ZZ_TEST002 disable trigger "RI_ConstraintTrigger_158847";

--FOREIGN KEY 생성이후 Disable이 필요한 경우도 위와 같은 방법으로 한다.

by. 박용훈