Gør venligst ikke dette - se grundigt på alternativer først, startende med opdeling og udelukkelse af begrænsninger .
Hvis du skal bruge dynamiske tabelnavne, skal du gøre det på applikationsniveau under generering af forespørgsler.
Hvis alt andet fejler, kan du bruge en PL/PgSQL-procedure som:
CREATE OR REPLACE pleasedont(int year) RETURNS TABLE basetable AS $$
BEGIN
RETURN QUERY EXECUTE format('SELECT col1, col2, col3 FROM %I', 'basetable_'||year);
END;
$$ LANGUAGE plpgsql;
Dette vil kun fungere, hvis du har en basistabel, der har samme struktur som undertabellerne. Det er også virkelig smertefuldt at arbejde med, når du begynder at tilføje kvalifikationer (hvor klausulbegrænsninger osv.), og det forhindrer enhver form for plancaching eller effektiv brug af forberedte sætninger.