Стандартный синтаксис SQL
DROP TABLE table_name;
IF EXISTS
не является стандартным; разные платформы могут поддерживать его с разным синтаксисом или вообще не поддерживать его. В PostgreSQL синтаксис
DROP TABLE IF EXISTS table_name;
Первый вызовет ошибку, если таблица не существует или если другие объекты базы данных зависят от нее. Чаще всего другие объекты базы данных будут ссылками на внешние ключи, но могут быть и другие. (Представления, например.) Вторая не выдаст ошибку, если таблица не существует, но все равно выдаст ошибку, если от нее зависят другие объекты базы данных.
Чтобы удалить таблицу и все другие объекты, которые от нее зависят, используйте один из них.
DROP TABLE table_name CASCADE;
DROP TABLE IF EXISTS table_name CASCADE;
Используйте CASCADE с большой осторожностью.