IF
kan ikke bruges i SQL, dette er kun gyldigt for PL/pgSQL.
Du skal gøre dette med dynamisk SQL inde i en anonym PL/pgSQL-blok. Noget som:
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;
$$
Du bør sandsynligvis udvide select
sætning for at slutte sig til pg_namespace
og inkludere skemanavnet i din where-tilstand for at sikre, at du ikke ved et uheld taber en tabel fra det forkerte skema.