通过在变量中传递密码,在Postgres中使用CREATE USER

问题描述 投票:0回答:1

我在PostgreSQL中有以下功能:

create function test_createuser(username varchar, userpassword varchar) returns void as $$
begin
  CREATE USER username WITH PASSWORD userpassword;
end;
$$ language plpgsql;

但是,这会产生以下错误:

syntax error at or near "userpassword"

如果我将一个文字字符串作为密码,例如'mypassword',则编译该函数。

有没有办法调用create user并从变量中传递密码?

postgresql
1个回答
1
投票

您将不得不使用动态SQL:

EXECUTE format('CREATE USER %I PASSWORD %L', username, userpassword);
© www.soinside.com 2019 - 2024. All rights reserved.