2014-02-18 48 views
0

我需要在一个过程中执行多个语句。重用准备好的语句

考虑以下情况:

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

回答

0

发现在Docs

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

0

也许你必须重新分配准备好的语句,至少在我准备好的语句的短暂的经验中,我做了它,一切都为我工作。