postgresql 使用AlloyDB创建条件数据库时出错

rjee0c15  于 2023-11-18  发布在  PostgreSQL
关注(0)|答案(1)|浏览(153)

我尝试在alloyDB中创建一个数据库,如果它已经不存在。我使用以下查询

CREATE DATABASE test WHERE NOT EXISTS (SELECT from pg_database WHERE datname=test);

字符串
这个语法适用于postgres,所以我的理解是它也应该适用于AlloyDB。但是它会导致错误ERROR: syntax error at or near "WHERE"。AlloyDB中还有其他语法用于条件数据库创建吗?

pobjuy32

pobjuy321#

根据Erwin Brandstetter的解决方案,您可以使用\\gexec将查询缓冲区发送到服务器。下面是您可以用于用例的解决方案。

SELECT 'CREATE DATABASE test'
WHERE NOT EXISTS (SELECT FROM pg_database WHERE datname = 'test')\gexec

字符串
此外,请记住您需要预定义的角色,以便能够在GCP alloydb上执行某些命令。

相关问题