我有很多DB:A,B,C等 对于每个DB,我创建了一个只读访问角色:A-ro,B-ro,C-ro。
每次我连接时,都输入:
SET ROLE 'A-ro';
有些数据库名称可能会很长,每次都不是很酷;所以,我想在我的.psqlrc中创建一个别名,以便输入类似的内容:
psql> :ro
我尝试了两件事:current_database()和:DBNAME。 问题:似乎我不能写出类似的东西: SET ROLE(SELECT current_database()||' -ro');
我也写不出来:
SET ROLE ':DBNAME-ro';
或
SET ROLE :DBNAME || '-ro';
我正在寻找正确的语法。
答案 0 :(得分:0)
感谢@mdlx回答,我挖掘了"中间变量"办法。 这是我的工作.psqlrc提取:
\set ROLE_RO '''':DBNAME-ro''''
\set ro 'SET ROLE ':ROLE_RO;
切换到RO模式正在运行:
psql> :ro
SET