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

पोस्टग्रेज में IF कंडीशन के आधार पर टेबल कैसे छोड़ें?

IF SQL में उपयोग नहीं किया जा सकता, यह केवल PL/pgSQL के लिए मान्य है।

आपको इसे एक अज्ञात पीएल/पीजीएसक्यूएल ब्लॉक के अंदर गतिशील एसक्यूएल के साथ करने की ज़रूरत है। कुछ इस तरह:

do
$$
declare
  l_count integer;
begin
  select count(*)
     into l_count
  from pg_class c
    join pg_namespace nsp on c.relnamespace = nsp.oid
  where c.relname = 'mytable' 
    and c.relpersistence = 'u'
    and nsp.nspname = 'public';

  if l_count = 1 then 
    execute 'drop table mytable';
  end if;

end;
$$

आपको शायद select . का विस्तार करना चाहिए pg_namespace . से जुड़ने के लिए कथन और यह सुनिश्चित करने के लिए अपनी स्थिति में स्कीमा नाम शामिल करें कि आप गलती से किसी तालिका को गलत स्कीमा से नहीं छोड़ रहे हैं।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PostgreSQL में अद्वितीय कॉलम मान शिफ्ट (अपडेट) करें

  2. Postgresql:कुछ प्रकार के अंकों के बीच रिक्त स्थान निकालना

  3. प्रति डेटाबेस प्रदाता प्रकार के स्वीकार्य पैरामीटर की अधिकतम संख्या क्या है?

  4. पोस्टग्रेज में क्रॉसस्टैब का उपयोग करने में असमर्थ

  5. Postgresql 9.4 . में रिक्त स्थान के साथ गलत क्रम/संयोजन/क्रम