कृपया ऐसा न करें - पहले विकल्पों पर ध्यान दें, से शुरू करें। विभाजन और बाधा बहिष्करण ।
यदि आपको डायनेमिक टेबल नामों का उपयोग करना है, तो इसे क्वेरी जनरेशन के दौरान एप्लिकेशन स्तर पर करें।
यदि अन्य सभी विफल हो जाते हैं तो आप PL/PgSQL प्रक्रिया का उपयोग कर सकते हैं जैसे:
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;
यह केवल तभी काम करेगा जब आपके पास एक बेस टेबल हो जिसमें सब-टेबल के समान संरचना हो। जब आप क्वालिफायर (जहां क्लॉज की कमी, आदि) जोड़ना शुरू करते हैं, तो इसके साथ काम करना भी वास्तव में दर्दनाक होता है, और यह किसी भी तरह के प्लान कैशिंग या प्रभावी तैयार स्टेटमेंट के उपयोग को रोकता है।