PERFORM¶
PERFORMexecutes aSELECTquery without returning its result rows to the client.
Description¶
PERFORM <select> executes the query completely, including its normal permission checks and side effects, but suppresses result rows in the client response. Only SELECT queries are supported. A plain SELECT, a CTE query, or a query combined with UNION/UNION ALL can follow PERFORM.
ROW_COUNT() returns 0 for a PERFORM statement. When save_query_result is enabled, the result can still be read from the internal result store with RESULT_SCAN; PERFORM does not unconditionally discard that internal result.
PERFORM ... INTO OUTFILE is not supported.
Syntax¶
PERFORM select_statement
Arguments¶
PERFORM takes one SELECT query, optionally containing a WITH clause or set operators such as UNION and UNION ALL.
Examples¶
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;
The following form is rejected:
-- Expected-Success: false
PERFORM SELECT 1 INTO OUTFILE '/tmp/perform.txt';