0
我有许多DB:A,B,C等。 对于每个DB,我创建了只读访问角色:A-ro,B-ro,C-ro。Postgresql:在角色名称中使用变量
每次我连接,I型:
SET ROLE 'A-ro';
有些DB的名称可能会很长,这录音是每次不是凉;所以,我想在我的.psqlrc创建别名,以键入类似:
psql> :ro
我试过两件事情:current_database()和:DBNAME。 问题:看起来我不能写这样的: SET ROLE(SELECT current_database()||'-ro');
而且我可以不写,要么:
SET ROLE ':DBNAME-ro';
或
SET ROLE :DBNAME || '-ro';
我正在寻找正确的语法。
你可以使用['EXECUTE'](http://www.postgresql.org/docs/ 9.1 /静态/ PLPGSQL-statements.html#PLPGSQL语句执行的-DYN)。缺点是你必须将其封装到plpgsql函数中。 – ckruse