यह उक्त तालिकाओं को छोड़ने के लिए कथन बनाएगा और नहीं पैटर्न से मेल खाने वाली अन्य वस्तुएं। इसके अलावा कोई सिस्टम टेबल नहीं है।
SELECT 'DROP TABLE ' || c.oid::regclass || ';'
FROM pg_class c
JOIN pg_namespace n ON n.oid = c.relnamespace -- to restrict to a schema
WHERE c.relkind = 'r' -- only tables
AND c.relname ILIKE '%gtab%' -- pattern for table names
AND n.nspname = 'public' -- restrict to a schema
ORDER BY 1;
regclass
. के लिए कास्ट करें स्वचालित रूप से बच निकलता है और आवश्यकतानुसार तालिका नामों को स्कीमा-योग्य बनाता है और SQL इंजेक्शन के विरुद्ध सुरक्षित है। विवरण:
- टेबल का नाम a के रूप में PostgreSQL फ़ंक्शन पैरामीटर
- plpgsql फ़ंक्शन में तालिका और स्तंभ नामों को तर्क के रूप में परिभाषित करें?
बहुत सी तालिकाओं के लिए एक एकीकृत विवरण तेज़ होगा:
SELECT 'DROP TABLE ' || string_agg(c.oid::regclass::text, ', ') || ';'
FROM pg_class c
JOIN pg_namespace n ON n.oid = c.relnamespace
WHERE c.relkind = 'r'
AND c.relname ILIKE '%gtab%'
AND n.nspname = 'public'
ORDER BY 1;
परिणाम:
DROP TABLE tbl1, tbl2, schema1.tbl3;
संबंधित उत्तर:
- क्या सभी भौतिक विचारों को सूचीबद्ध/छोड़ने के लिए कोई पोस्टग्रेज आदेश है?
- अप्रयुक्त अनुक्रम कैसे हटाएं?ए>