↑↓ 选择 ↵ 打开 ⌫ 改范围 完整检索页

pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。

不受支持的版本: 7.4 / 7.3 / 7.2 / 7.1
历史版本PostgreSQL 7.2 已于 2007 年 2 月结束社区维护,本页译文保留供仍在使用旧版本的读者参考。新系统请看当前版本手册首页。

4.13. 杂项函数 #

表 4.25. 会话信息函数

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

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

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

Deprecated

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

表 4.26. 系统信息函数

名称 返回类型 描述
version text PostgreSQL 版本信息

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。

提交更正

译文有误、术语不当或页面显示问题,请到译文仓库 pgsty/pgdoc 报告译文问题。 英文原文本身的问题,请在当前版本的对应页面向上游反馈;上游不再修订已结束维护的版本。