PostgreSQL
 sql >> डेटाबेस >  >> RDS >> PostgreSQL

एक ही बार में कई (लेकिन सभी नहीं) टेबल कैसे गिराएं?

सबसे पहले, आप कई तालिकाओं को एकल में हटा सकते हैं कथन :

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 इंटरेक्टिव टर्मिनल) में सभी तालिकाओं को कैसे छोड़ सकता हूं जो एक सामान्य शब्द से शुरू होती हैं?



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. डेटा अंतराल के आधार पर समूहित करें

  2. DB2 से PostgreSQL में माइग्रेट करना - आपको क्या पता होना चाहिए

  3. आप पोस्टग्रेज और फायरबर्ड डेटाबेस के बारे में क्या सोचते हैं?

  4. रेल ऑटो-असाइनिंग आईडी जो पहले से मौजूद है

  5. PostgreSQL माउंटेन लायन सॉकेट मुद्दा