更新时间:2025-09-11 GMT+08:00
分享

PREPARE

功能描述

创建一个预备语句。

预备语句是服务端的对象,可以用于优化性能。在执行PREPARE语句的时候,指定的查询被解析、分析、重写。当随后发出EXECUTE语句的时候,预备语句被规划和执行。这种设计避免了重复解析、分析工作。PREPARE语句创建后在整个数据库会话期间一直存在,一旦创建成功,即便是在事务块中创建,事务回滚,PREPARE也不会删除。只能通过显式调用DEALLOCATE进行删除,会话结束时,PREPARE也会自动删除。

注意事项

不支持创建同名的PREPARE语句。

语法格式

PREPARE name FROM string

参数说明

  • name

    预备查询标识符。

  • string

    字符串,为预备SQL语句,不支持使用用户变量@var_name,支持以下语句:

    • SELECT
    • INSERT
    • UPDATE
    • DELETE

示例

m_db=# PREPARE p1 FROM 'SELECT 10 < 52';
PREPARE
m_db=# EXECUTE p1;
 ?column? 
----------
 t
(1 row)

相关文档