PERFORM¶
PERFORM执行SELECT查询,但不向客户端返回结果行。
描述¶
PERFORM <select> 完整执行查询,包括普通的权限检查和副作用,但在客户端响应中抑制结果行。该语句仅支持 SELECT 查询;PERFORM 后可以跟普通 SELECT、CTE 查询以及带 UNION 或 UNION ALL 的查询。
PERFORM 语句的 ROW_COUNT() 返回 0。启用 save_query_result 后,仍可通过 RESULT_SCAN 从内部结果存储读取结果;PERFORM 不会无条件丢弃该内部结果。
不支持 PERFORM ... INTO OUTFILE。
语法¶
PERFORM select_statement
参数释义¶
PERFORM 接受一个 SELECT 查询,该查询可以包含 WITH 子句或 UNION、UNION ALL 等集合运算符。
示例¶
DROP DATABASE IF EXISTS perform_demo;
CREATE DATABASE perform_demo;
USE perform_demo;
CREATE TABLE perform_t (v INT);
INSERT INTO perform_t VALUES (3), (1), (2);
PERFORM SELECT v FROM perform_t ORDER BY v;
PERFORM SELECT v FROM perform_t WHERE v = 1 UNION ALL SELECT v FROM perform_t WHERE v = 3;
PERFORM WITH ordered AS (SELECT v FROM perform_t ORDER BY v) SELECT v FROM ordered;
SELECT ROW_COUNT() AS rows_returned;
DROP DATABASE perform_demo;
以下形式会被拒绝:
-- Expected-Success: false
PERFORM SELECT 1 INTO OUTFILE '/tmp/perform.txt';