[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 $$;