2014-02-18 3 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; 

Я это действует? Или мне нужно освободить каждое заявление перед тем, как подготовить новый? Если это справедливо будет, что рекомендуется или лучше, чтобы освободить каждое заявление, у меня нет никаких забот о deallocating, так как я нигде вблизи max_prepared_stmt_count

ответ

0

Найдено ответ на Docs

If подготовленный оператор с указанным именем уже существует, он освобождается неявно до того, как будет подготовлен новый оператор. Это означает, что если новый оператор содержит ошибку и не может быть подготовлен, возвращается ошибка, и никакая инструкция с указанным именем не существует.

0

Возможно, вы должны освободить подготовленное заявление, по крайней мере, в моем коротком опыте с подготовленным заявлением, я сделал это, и все работало нормально для меня.

Смежные вопросы