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
. से जुड़ने के लिए कथन और यह सुनिश्चित करने के लिए अपनी स्थिति में स्कीमा नाम शामिल करें कि आप गलती से किसी तालिका को गलत स्कीमा से नहीं छोड़ रहे हैं।