सबसे पहले, आप कई तालिकाओं को एकल में हटा सकते हैं कथन :
DROP TABLE mystuff_table_1, mystuff_table_2, mystuff_table_3 CASCADE;
इसके बाद, आप उन सभी तालिकाओं को अलग स्कीमा . में डाल सकते हैं . उस स्कीमा को डिफ़ॉल्ट में जोड़ें search_path
आपके उपयोगकर्ता (उपयोगकर्ताओं) का, इसलिए यह सब पारदर्शी है।
फिर आपको बस इतना चाहिए:
DROP SCHEMA foo CASCADE;
यदि यह काफी छोटा नहीं है, तो एक ऐसा फ़ंक्शन बनाएं जो कमांड निष्पादित करे।
एक स्थिर SQL फ़ंक्शन :
CREATE OR REPLACE FUNCTION f_delete12() RETURNS void AS
$func$
DROP TABLE mystuff_table_1, mystuff_table_2, mystuff_table_3, ... CASCADE;
$func$ LANGUAGE sql VOLATILE;
या एक गतिशील PL/pgSQL फ़ंक्शन :
CREATE OR REPLACE FUNCTION f_delete12()
RETURNS void AS
$func$
BEGIN
EXECUTE (
SELECT 'DROP TABLE ' || string_agg('mystuff_table_' || g, ', ')
|| ' CASCADE'
FROM generate_series(1,12) g -- numbers 1 to 12
);
END
$func$ LANGUAGE plpgsql VOLATILE;
कॉल करें:
SELECT f_delete12();
और भी अधिक गतिशील कथन के लिए:
मैं psql (PostgreSQL इंटरेक्टिव टर्मिनल) में सभी तालिकाओं को कैसे छोड़ सकता हूं जो एक सामान्य शब्द से शुरू होती हैं?