Note
- 안전하게
BEGIN
으로 시작하는 것이 좋다.
샘플
BEGIN;
------------------------------------------------------------------------------
-- 1. 컬럼 변경한 임시 스키마.테이블 생성
------------------------------------------------------------------------------
-- DROP SCHEMA IF EXISTS tmp_migration CASCADE;
CREATE SCHEMA IF NOT EXISTS tmp_migration;
DROP TABLE IF EXISTS tmp_migration.**__table__**;
CREATE TABLE tmp_migration.**__table__** AS
SELECT
-------------------
-- 컬럼 변경사항 --
-------------------
FROM **__schema__**.**__table__**;
------------------------------------------------------------------------------
-- 2. 원본 테이블 제거 후 임시 테이블로부터 마이그레이션
------------------------------------------------------------------------------
-- [1] FK 무력화
SELECT * FROM F_GATHER_ALL_FK_REF_TO_TABLE('**__schema__**.**__table__**');
-- [2] 테이블 제거 및 재생성 (컬럼 변경 이후 DDL)
DROP TABLE **__schema__**.**__table__**;
CREATE TABLE ~
-- [3] 데이터 마이그레이션
INSERT INTO **__schema__**.**__table__**
SELECT * FROM tmp_migration.**__table__**;
-- [4] FK 재설정
SELECT * FROM F_GATHER_ALL_FK_REF_TO_TABLE('**__schema__**.**__table__**');
-- [5] Serial 존재하는 경우 리셋
CALL RESET_ALL_SERIALS();
-- 검토 후 마무리
SELECT * FROM **__schema__**.**__table__**;
--COMMIT;
예시