每次我尝试执行如下所示的 DO 语句时,Greenplum 数据库(一个 PostgreSQL 分支)都会引发错误。具体来说,错误:“DO”处或附近的语法错误。为什么是这样?我正在运行基于 PostgreSQL 8.2.15 的 Greenplum(版本?)。
DO LANGUAGE plpgsql $$
BEGIN
IF (SELECT COUNT(*) FROM test) > 1 THEN
CREATE TABLE test2 AS SELECT * FROM test
END IF;
END;
$$;
请注意,如果我将它作为一个函数执行它可以正常工作。
CREATE OR REPLACE FUNCTION test_maker ()
RETURNS void AS
$_$
BEGIN
IF (SELECT COUNT(*) FROM test) > 1 THEN
CREATE TABLE test2 AS SELECT * FROM test;
END IF;
END $_$ LANGUAGE plpgsql;
SELECT test_maker();