Potřebujete dynamické SQL s příkazem EXECUTE
pokud chcete předat identifikátory (nebo jejich části) jako parametry:
CREATE OR REPLACE FUNCTION f_trunc(pos text)
RETURNS void AS
$func$
BEGIN
EXECUTE format('TRUNCATE %I', massive_table_ || pos);
END
$func$ LANGUAGE plpgsql;
Zde jsou dvě související odpovědi se spoustou vysvětlení a odkazů:
- INSERT with název dynamické tabulky ve funkci spouštění
- Název tabulky jako Parametr funkce PostgreSQL