↑↓ 选择↵ 打开⌫ 切换范围完整搜索

PG.CENTER 连接 PostgreSQL 文档、百科与生态知识。由 Pigsty 维护。

已结束支持的版本: 7.4 / 7.3 / 7.2 / 7.1
历史版本。 PostgreSQL 7.2 已结束支持。 请参阅 当前版本手册.

4.13. 杂项函数 #

表 4.25. 会话信息函数

名称返回类型描述
current_username当前执行上下文的用户名
session_username会话用户名
username等价于 current_user

session_user 是发起数据库连接的用户;它在该连接期间是固定的。current_user 是适用于权限检查的用户标识符。当前它总是等于会话用户,但将来可能会有“setuid” 函数和其他允许当前用户临时更改的设施。用 Unix 的说法,会话用户是“真实用户”,当前用户是“有效用户”。

注意这些函数在 SQL 中具有特殊的语法地位:调用它们时不能带尾部的圆括号。

Deprecated

函数 getpgusername() 是 current_user 的已废弃等价形式。

表 4.26. 系统信息函数

名称返回类型描述
versiontextPostgreSQL 版本信息

version() 返回一个描述 PostgreSQL 服务器版本的字符串。

表 4.27. 访问权限查询函数

名称返回类型描述
has_table_privilege(user, table, access) boolean用户是否有访问表的权限
has_table_privilege(table, access) boolean当前用户是否有访问表的权限

has_table_privilege 判断一个用户能否以某种特定方式访问一个表。用户可以按名称或按 ID(pg_user.usesysid)指定,如果省略该参数则假定为 current_user。表可以按名称或按 OID 指定。(因此 has_table_privilege 实际上有六种变体,可以通过参数的数量和类型区分。)所需的访问类型由一个文本字符串指定,它必须求值为 SELECT、INSERT、UPDATE、DELETE、RULE、REFERENCES 或 TRIGGER 之一。(但字符串的大小写无关紧要。)

表 4.28. 目录信息函数

名称返回类型描述
pg_get_viewdef(viewname)text获取视图的 CREATE VIEW 命令
pg_get_ruledef(rulename)text获取规则的 CREATE RULE 命令
pg_get_indexdef(indexOID)text获取索引的 CREATE INDEX 命令
pg_get_userbyid(userid)name根据给定的 ID 获取用户名

这些函数从系统目录中提取信息。pg_get_viewdef()、pg_get_ruledef() 和 pg_get_indexdef() 分别重构造视图、规则或索引的创建命令。(注意,这是反编译的重构造,不是该命令的逐字文本。)pg_get_userbyid() 根据一个 usesysid 值提取用户名。

表 4.29. 注释信息函数

名称返回类型描述
obj_description(objectOID, tablename)text获取数据库对象的注释
obj_description(objectOID)text获取数据库对象的注释(已废弃)
col_description(tableOID, columnnumber)text获取表列的注释

这些函数提取先前用 COMMENT 命令存储的注释。如果找不到与指定参数匹配的注释,则返回 NULL。

obj_description() 的双参数形式返回由其 OID 和包含它的系统目录的名称指定的数据库对象的注释。例如,obj_description(123456,'pg_class') 会检索 OID 为 123456 的表的注释。obj_description() 的单参数形式只需要对象 OID。它现在已被废弃,因为无法保证 OID 在不同的系统目录中是唯一的;因此可能返回错误的注释。

col_description() 返回表列的注释,由其表的 OID 和列号指定。obj_description() 不能用于表列,因为列没有自己的 OID。

报告文档问题

阅读 上游文档. 反馈更正前请先核对 当前版本手册.