我想创建一个 Postgres 表并对其进行更改,但前提是它首先不存在。我不认为这应该是一个函数,因为它在应用程序启动期间只运行一次。我试图从pg-promise nodejs lib using执行这段代码client.none(sql, params)
,但它给了我一个错误syntax error at or near "IF"
,所以我猜它必须是其他一些执行方法,或者我的 SQL 从根本上是有缺陷的。谢谢!
BEGIN
IF NOT EXISTS (
SELECT 1 FROM information_schema.tables
WHERE table_schema = $1 AND table_name = $2
) THEN
CREATE TABLE $2~ (zoom smallint, idx bigint, tile bytea, PRIMARY KEY (zoom, idx));
ALTER TABLE $2~ ALTER COLUMN tile SET STORAGE EXTERNAL;
END IF;
END;