为什么我不能在这里使用IF?

时间:2019-05-28 14:05:20

标签: postgresql

如果该表没有数据或为空,我试图删除该表,因此我在PostgreSQL中编写了此Statement,但遇到一个错误,提示syntax error near IF

我可以将其划分为2个不同的SQL语句,但是我想将其作为一个查询来运行。

IF (SELECT COUNT(*) FROM ${tableName}) > 0
    BEGIN
        DROP TABLE ${tableName}
    END

我也尝试过:

IF (SELECT COUNT(*) FROM zzz > 0) THEN
    DROP TABLE zzz
END IF

ERROR:  syntax error at or near "SELECT"
LINE 2: SELECT COUNT(*) FROM zzz > 0
        ^
SQL state: 42601
Character: 7

1 个答案:

答案 0 :(得分:2)

如果要使用SQL进行此操作,则必须使用DO语句:

DO
$$BEGIN
   IF (SELECT Count(*) FROM zzz) > 0 THEN
      DROP TABLE zzz;
   END IF;
END;$$;