重新使用预备声明

时间:2014-02-18 12:44:02

标签: mysql sql

我需要在一个程序中执行多个语句。

考虑以下情况:

PREPARE stmt FROM 'select * from tbl1';
EXECUTE stmt;

PREPARE stmt FROM 'select * from tbl2';
EXECUTE stmt;

 /* several more executes, around 10 */
DEALLOCATE PREPARE stmt;

我这个有效吗?或者我是否需要在准备新语句之前释放每个语句? 如果这是有效的,那么建议或者更好地解除分配每个语句,我不担心解除分配,因为我离max_prepared_stmt_count

不远

2 个答案:

答案 0 :(得分:0)

Docs

中找到答案
  

如果已存在具有给定名称的预准备语句,则在准备新语句之前将其隐式释放。这意味着如果新语句包含错误且无法准备,则返回错误,并且不存在具有给定名称的语句。

答案 1 :(得分:0)

可能你必须解除准备好的陈述,至少在我的准备陈述的短暂经历中,我做了它并且一切都对我有用。