准备 (PREPARE)

用于创建预准备语句的 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" 的任何评论、建议或更正 此处