在PostgreSQL数据库中删除表,如果存在的话

26

我正在尝试在当前的PostgreSQL数据库中删除表格,如果存在的话。我正在尝试以下查询。

示例:

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

execute var1;

但在IF附近出现了错误。


1
请给你的代码添加更多上下文,请发布你试图执行的完整语句。 - Sharkman
1
drop table if exists 有什么问题吗? - user330315
展示错误信息的确切文本和相关代码。此外,PostgreSQL 版本是多少?SELECT version(); - Craig Ringer
1个回答

59

execute 执行的是SQL语句,不是PL/pgSQL命令。IF语句是PL/pgSQL结构。

无论如何,您可以使用

DROP TABLE IF EXISTS ...

(参见DROP的手册页面)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接