Удалить таблицу, если она существует в базе данных PostgreSQL

Я пытаюсь удалить таблицу, если она существует в текущей рабочей базе данных PostgreSQL. Для чего я пытаюсь выполнить следующий запрос.

пример:

var1 := 'IF EXISTS (select * from INFORMATION_SCHEMA.TABLES WHERE name = ''Table_'|| Suffix ||''') then
      DROP TABLE Table_'||Suffix||'';

execute var1;

но получение ошибки рядом IF.

1 ответов


execute выполняет операторы SQL, а не команды PL/pgSQL. Оператор IF является конструкцией PL/pgSQL.

в любом случае вы можете использовать

DROP TABLE IF EXISTS ...

(см. страница руководства для DROP).