Tolong jangan lakukan ini - cari alternatif terlebih dahulu, dimulai dengan partisi dan pengecualian batasan .
Jika Anda harus menggunakan nama tabel dinamis, lakukan di tingkat aplikasi selama pembuatan kueri.
Jika semuanya gagal, Anda dapat menggunakan prosedur PL/PgSQL seperti:
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;
Ini hanya akan berfungsi jika Anda memiliki tabel dasar yang memiliki struktur yang sama dengan sub-tabel. Ini juga sangat sulit untuk dikerjakan ketika Anda mulai menambahkan qualifier (di mana batasan klausa, dll), dan ini mencegah segala jenis caching rencana atau penggunaan pernyataan yang disiapkan secara efektif.