호출 예시

CALL MULTI_TABLE_QUERY(ARRAY['test01', 'test02'], 'ALTER TABLE %s ADD COLUMN id int');

정의

--------------------------------------------------------------------------------------------
-- 여러 테이블에 쿼리 동시 실행
--------------------------------------------------------------------------------------------
-- [설명]
-- _query 문자열 내에서 테이블명은 '%s'로 표시
--------------------------------------------------------------------------------------------
-- [예제]
-- CALL MULTI_TABLE_QUERY(ARRAY['test01', 'test02'], 'ALTER TABLE %s ADD COLUMN id int');
--------------------------------------------------------------------------------------------
DROP PROCEDURE IF EXISTS MULTI_TABLE_QUERY;
        CREATE PROCEDURE MULTI_TABLE_QUERY
(
    _tableNames TEXT[],
    _query TEXT
)
AS $$
    DECLARE _queries TEXT[];
BEGIN

    FOR i IN 1 .. array_upper(_tableNames, 1)
    LOOP
        EXECUTE FORMAT(_query, _tableNames[i]);
    END LOOP;
    
END; $$
LANGUAGE plpgsql;