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文档: 系统目录信息函数