PREPARE

用于创建预准备语句的 SQL 命令

PREPARE 是一个用于创建预准备语句的实用命令。

PREPAREPostgreSQL 7.3 中添加。

用法

PREPARE 用于创建一个命名的预准备语句,可选地指定参数列表,参数用位置表示,例如 $1, $2 等。

此命令创建的预准备语句对于当前会话是有效的,不能从其他会话访问。它会在会话结束时自动移除,或者可以通过 DEALLOCATE 命令手动移除。在同一会话中,只能存在一个同名的预准备语句;无法通过创建具有不同参数的变体来“重载”预准备语句。

预准备语句可以使用 EXECUTE 执行。

变更历史

示例

PREPARE 的基本用法示例

postgres=# PREPARE foo_ins (INT, TEXT) AS
             INSERT INTO foo VALUES ($1, $2);
PREPARE

postgres=# SELECT * FROM pg_prepared_statements;
-[ RECORD 1 ]---+-----------------------------------
name            | foo_ins
statement       | PREPARE foo_ins (INT, TEXT) AS    +
                |   INSERT INTO foo VALUES ($1, $2);
prepare_time    | 2022-08-04 23:17:04.706349+09
parameter_types | {integer,text}
result_types    | 
from_sql        | t
generic_plans   | 0
custom_plans    | 0

提供的语句必须在语法上有效,并且引用可见的对象。

postgres=# PREPARE bar_ins (INT, TEXT) AS
                        INSERT INTO bar VALUES ($1, $2);
ERROR:  relation "bar" does not exist
LINE 2:              INSERT INTO bar VALUES ($1, $2);

尝试创建预准备语句时,如果同名的预准备语句已存在。

postgres=# PREPARE foo_ins (INT) AS
             INSERT INTO foo VALUES ($1);
ERROR:  prepared statement "foo_ins" already exists

分类

SQL 命令, 实用命令

另请参阅

EXECUTE, DEALLOCATE, plan_cache_mode, pg_prepared_statements

反馈

提交关于“PREPARE”的任何评论、建议或更正 在此处