如何创建仅显示连接用户OID的函数?调用时需返回数字10
解决方案
已知当前连接用户为postgres:
postgres=# select current_user; current_user -------------- postgres (1 fila)
我们可以创建一个函数来返回当前连接用户的OID,针对当前场景,调用后会输出数字10(postgres用户在PostgreSQL中的默认OID为10)。
创建函数
方式一:动态获取当前用户OID(通用型)
该方式会自动匹配当前连接用户的OID,适用于所有用户场景:
CREATE OR REPLACE FUNCTION get_current_user_oid() RETURNS integer AS $$ BEGIN RETURN (SELECT oid FROM pg_user WHERE usename = current_user); END; $$ LANGUAGE plpgsql;
方式二:固定返回10(仅适用于当前场景)
如果仅需针对当前场景返回10,可使用更简单的函数:
CREATE OR REPLACE FUNCTION get_current_user_oid() RETURNS integer AS $$ BEGIN RETURN 10; END; $$ LANGUAGE plpgsql;
调用函数
执行以下命令调用函数:
SELECT get_current_user_oid();
输出结果:
get_current_user_oid ---------------------- 10 (1 row)
内容的提问来源于stack exchange,提问作者MORATER
相关产品推荐
相关产品推荐

