본문 바로가기

웹개발

[postgreSQL] 테이블 백업 쿼리 및 테이블(컬럼) 주석(코멘트) 복사 스크립트

--1.테이블 백업

CREATE 새테이블명 AS SELECT * FROM 원본테이블명;

 

--2.테이블(컬럼) 주석(코멘트) 복사 스크립트

DO $$
DECLARE
    table_comment TEXT;
    column_comment TEXT;
    colname TEXT;
BEGIN
    -- 테이블 주석 복사
    SELECT obj_description('원본테이블명'::regclass) INTO table_comment;
    IF table_comment IS NOT NULL THEN
        EXECUTE format('COMMENT ON TABLE 새테이블명 IS %L', table_comment);
    END IF;
    -- 컬럼 주석 복사
    FOR colname, column_comment IN
        SELECT a.attname, col_description(a.attrelid, a.attnum)
        FROM pg_attribute a
        WHERE a.attrelid = '원본테이블명'::regclass AND a.attnum > 0
    LOOP
        IF column_comment IS NOT NULL THEN
            EXECUTE format('COMMENT ON COLUMN 새테이블명.%I IS %L', colname, column_comment);
        END IF;
    END LOOP;
END $$;