호출 예시
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;