Skip to content

PREPARE语句

预编译需要执行的SQL语句。

语法格式

  • 预编译SQL语句PREPARE

    sql
    PrepareStmt::=
        PREPARE ColId AS sql_stmt
  • 释放预编译的SQL语句DEALLOCATE

    sql
    DeallocateStmt::=
        DEALLOCATE ColId

参数说明

  • ColId:定义的预编译名称。
  • sql_stmt:预编译的执行SQL语句。

说明:

  • PREPARE预编译支持DML语句。
  • PREPARE预编译支持DDL语句。支持的对象范围目前仅包括表/视图,其他对象PREPARE只支持DROP操作。
  • 建议在使用预编译语句完成后释放预编译语句,减少资源浪费,可通过DEALLOCATE语句释放预编译语句,也可通过关闭当前会话自动释放。

示例

使用PREPARE语句来准备和执行DDL和DML语句,创建表并插入数据。

sql
-- 预编译DDL语句。
PREPARE pre_1 AS CREATE TABLE pre_tab(col1 INT,col2 VARCHAR);
-- 执行pre_1
?pre_1
-- 预编译DML语句。
PREPARE pre_2 AS INSERT INTO pre_tab values(1,'VAL1');
-- 执行pre_2
?pre_2

SELECT * FROM pre_tab;

COL1 | COL2 | 
------------------------------------------------------------------------------
1 | VAL1|