pg_get_expr()
是一个系统函数,它将存储为 pg_node_tree
值的表达式反编译成适合包含在 SQL 语句中的文本。
pg_get_expr()
添加于 PostgreSQL 7.2。
用法
pg_get_expr (expr
pg_node_tree
,relation
oid
[,pretty
boolean
] ) →text
如果 pg_node_tree
表达式引用了另一个关系,则必须指定其 OID,否则应提供 0
。
变更历史
- PostgreSQL 8.4
0
(InvalidOid
) 作为关系参数的值被接受(提交 48938ab5)
- PostgreSQL 7.4
- 添加了
pretty
选项(提交 52347b66)
- 添加了
- PostgreSQL 7.2
- 添加(提交 f31dc0ad)
示例
用于 pg_get_expr()
的基本用法示例,以检索 生成列 的定义
postgres=# CREATE TABLE temperature ( celsius SMALLINT NOT NULL, fahrenheit SMALLINT NOT NULL GENERATED ALWAYS AS ((celsius * 9/5) + 32) STORED ); CREATE TABLE postgres=# SELECT pg_get_expr(adbin, adrelid, true) FROM pg_attrdef WHERE adrelid = 'temperature'::regclass; pg_get_expr ------------------------ (celsius * 9 / 5 + 32) (1 row)
参考
- PostgreSQL 文档: 系统目录信息函数