
# PREPARE
#### 功能描述
创建一个预备语句。
预备语句是服务端的对象，可以用于优化性能。在执行PREPARE语句的时候，指定的查询被解析、分析、重写。当随后发出EXECUTE语句的时候，预备语句被规划和执行。这种设计避免了重复解析、分析工作。PREPARE语句创建后在整个数据库会话期间一直存在，一旦创建成功，即便是在事务块中创建，事务回滚，PREPARE也不会删除。只能通过显式调用[DEALLOCATE](https://support.huaweicloud.com/distributed-m-comp-devg-v8-gaussdb/gaussdb-81-0083.html#ZH-CN_TOPIC_0000002558925207)进行删除，会话结束时，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)
```
