准备

用于创建预处理语句的SQL命令

PREPARE 是用于创建预处理语句的实用程序命令。

PREPARE 添加于 PostgreSQL 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命令实用程序命令

另请参阅

EXECUTEDEALLOCATEplan_cache_modepg_prepared_statements

反馈

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