# PREPARE
#### 功能描述
创建一个预备语句。
预备语句是服务端的对象，可以用于优化性能。在执行PREPARE语句的时候，指定的查询被解析、分析、重写。当随后发出EXECUTE语句的时候，预备语句被规划和执行。这种设计避免了重复解析、分析工作。PREPARE语句创建后在整个数据库会话期间一直存在，一旦创建成功，即便是在事务块中创建，事务回滚，PREPARE也不会删除。只能通过显式调用[DEALLOCATE](https://support.huaweicloud.com/distributed-ref-v10-gaussdb/gaussdb-08-0286.html)进行删除，会话结束时，PREPARE也会自动删除。
#### 语法格式
```
PREPARE name [ ( data_type [, ...] ) ] AS statement;
```
![](https://support.huaweicloud.com/distributed-ref-v10-gaussdb/figure/zh-cn_image_0000002764309308.png "点击放大")
#### 参数说明
- **name**
  预备语句的名称。必须在该会话中是唯一的。
  
- **data_type**
  参数的数据类型。
  
- **statement**
  SELECT、INSERT、UPDATE、DELETE、MERGE INTO或VALUES语句之一。
  
![](https://support.huaweicloud.com/distributed-ref-v10-gaussdb/public_sys-resources/note_3.0-zh-cn.png)
PREPARE语句的解析过程中，所有参数默认均被解析为unknown数据类型。若解析涉及操作符或函数的选择，遵循文档中[操作符](https://support.huaweicloud.com/distributed-ref-v10-gaussdb/gaussdb-08-0129.html)和[函数](https://support.huaweicloud.com/distributed-ref-v10-gaussdb/gaussdb-08-0130.html)中对unknown类型参数的处理规范。
#### 示例
请参见EXECUTE的[示例](https://support.huaweicloud.com/distributed-ref-v10-gaussdb/gaussdb-08-0332.html#ZH-CN_TOPIC_0000002764468406__zh-cn_topic_0059777447_s8a46083a59d940c3aaa2535b2f783645)。
#### 相关链接
[DEALLOCATE](https://support.huaweicloud.com/distributed-ref-v10-gaussdb/gaussdb-08-0286.html)，[EXECUTE](https://support.huaweicloud.com/distributed-ref-v10-gaussdb/gaussdb-08-0332.html)
