IF
kan niet worden gebruikt in SQL, dit is alleen geldig voor PL/pgSQL.
U moet dit doen met dynamische SQL in een anoniem PL/pgSQL-blok. Iets als:
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;
$$
U moet waarschijnlijk de select
. uitbreiden statement om mee te doen tegen pg_namespace
en neem de schemanaam op in uw waar-voorwaarde om ervoor te zorgen dat u niet per ongeluk een tabel uit het verkeerde schema laat vallen.