Basic PL/pgSQL executable statements
This page documents the preview version (v2.21). Preview includes features under active development and is for development and testing only. For production, use the stable version (v2024.1). To learn more, see Versioning.
The following table lists all of the basic PL/pgSQL executable statements.
- The Statement Name column links to the page where the semantics are described.
- The Syntax rule name column links to the definition on the omnibus Grammar Diagrams reference page.
STATEMENT NAME | SYNTAX RULE NAME | COMMENT |
---|---|---|
"assert" statement | plpgsql_assert_stmt | abort the current server call if the assertion tests "false" |
"assign" statement | plpgsql_assignment_stmt | e.g. "a := b + c;" and "v := (select count(*) from s.t)". No further explanation is needed. |
Bare SQL statement | plpgsql_static_bare_sql_stmt | ANY embedded SQL statement (including DDL, etc) that doesn't return values |
"close" statement | plpgsql_close_cursor_stmt | close a cursor (using "refcursor" variable) |
"continue" statement | plpgsql_continue_stmt | start the next iteration of a loop (or enclosing loop) |
"execute" statement | plpgsql_dynamic_sql_stmt | execute a dynamic SQL statement, optionally with "into" clause for returned values |
"exit" statement | plpgsql_exit_stmt | exit from a loop (or enclosing loop) |
"fetch" statement | plpgsql_fetch_from_cursor_stmt | fetch from a cursor (using "refcursor" variable) |
"get diagnostics" statement | plpgsql_get_diagnostics_stmt | get diagnostic info about the most-recently-executed SQL statement |
"get stacked diagnostics" statement | plpgsql_get_stacked_diagnostics_stmt | get diagnostic info about the exception that brought the point of execution to the present handler |
"insert, update, delete into" statement | plpgsql_static_dml_returning_stmt | embedded "insert", "update", or "delete" statement with "into" clause for returned values |
"move" statement | plpgsql_move_in_cursor_stmt | move in cursor — not yet supported, see Beware Issue #6514 |
"open" statement | plpgsql_open_cursor_stmt | open a cursor (using "refcursor" variable) |
"perform" statement | plpgsql_perform_stmt | execute a "select" statement without returning rows |
"raise" statement | plpgsql_raise_stmt | "raise info" or... "warning" or... "exception" |
"return" statement | plpgsql_return_stmt | exit from subprogram to caller, optionally returning value(s) |
"select into" statement | plpgsql_static_select_into_stmt | embedded single-row "select" with "into" clause for returned values |