current_query()

返回当前查询文本的函数

current_query() 是一个系统函数,返回当前正在执行的查询的文本。

current_query()PostgreSQL 8.4 中添加。

用法

current_query () → text

current_query() 旨在用于函数和存储过程,用于检查调用查询。

更改历史记录

示例

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)

分类

系统函数

另请参阅

pg_stat_activity

反馈

提交任何关于 "current_query()" 的评论、建议或更正 此处