2014-02-18 42 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

也許你必須重新分配準備好的語句,至少在我準備好的語句的短暫的經驗中,我做了它,一切都爲我工作。