创建数据库无法在函数中执行 POSTGRESQL

4
我有这个函数。
DO
$do$
BEGIN
   IF EXISTS (SELECT FROM pg_database WHERE name = 'MydB') THEN
      RAISE NOTICE 'db already created';
   ELSE
                         CREATE DATABASE MydB;
   END IF;
END
$do$;

然而当它运行时,我会得到以下错误:

CREATE DATABASE cannot be executed from a function 

有人能推荐一个解决这个问题的好方法吗?

1个回答

1

你不能在事务中运行CREATE DATABASE,因此也不能在函数中运行。

不要使用DO语句运行它,如果出现SQLSTATE 42P04错误,请忽略它 - 这意味着数据库已经存在。


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