개발/서버 & DB
[DB2] FK(포렌키) 전체 비활성화
blablax5
2022. 9. 15. 15:47
1. 전체 테이블 FK 비활성화
select 'set integrity for ' || TRIM(TABSCHEMA) || '.' || TRIM(TABNAME) || ' off;'
from syscat.tables
where tabschema not like 'SYS%'
and type = 'T'
2. FK 비활성화 후에 REORG를 해줘야하는데 하면 테이블이 무결성 설정 보류 액세스 권한 없음 상태로 되기에 잠금 해제
select 'set integrity for ' || TRIM(TABSCHEMA) || '.' || TRIM(TABNAME) || ' immediate checked;'
from syscat.tables
where tabschema not like 'SYS%'
and type = 'T'
3. REORG 실행 (REORG란? 데이터 및 인덱스 페이지의 물리적인 정렬)
select 'CALL SYSPROC.ADMIN_CMD(''REORG TABLE ' || TRIM(TABSCHEMA) || '.' || TRIM(TABNAME) || ''');'
from syscat.tables
where tabschema not like 'SYS%'
and type = 'T';
DBeaver로 진행 하였음 select를 하면 결과가 밑의 사진 처럼 나옴
그러면 전부 다 복사해서 넣고 alt+x를 눌러주면 한줄씩 스크립트 실행함