current_query()
是一个系统函数,返回当前正在执行的查询的文本。
current_query()
在 PostgreSQL 8.4 中添加。
用法
current_query () → text
current_query()
旨在用于函数和存储过程,用于检查调用查询。
更改历史记录
- PostgreSQL 8.4
- 添加 (提交 f96928fd)
示例
current_query()
的基本用法示例
postgres=# SELECT current_query(); current_query ------------------------- SELECT current_query(); (1 row)
从上面可以看出,current_query()
本身实用性不大。但是,在函数或过程(例如触发器函数)的上下文中,它对于检查调用该函数的查询很有用。
postgres=# CREATE OR REPLACE FUNCTION query_to_text() RETURNS TEXT LANGUAGE 'plpgsql' AS $$ DECLARE calling_query TEXT; BEGIN SELECT current_query() INTO calling_query; RAISE NOTICE 'The calling query is: "%"', calling_query; RETURN calling_query; END; $$; CREATE FUNCTION postgres=# SELECT query_to_text(); NOTICE: The calling query is: "SELECT query_to_text();" query_to_text ------------------------- SELECT query_to_text(); (1 row)
参考
- PostgreSQL 文档: 会话信息函数