Lorsque vous utilisez des instructions préparées dans des procédures stockées, doivent-elles être désallouées à la fin de la procédure ou non, ou ne sont-elles pas importantes, et pourquoi?Les instructions préparées doivent-elles être désaffectées lorsqu'elles sont utilisées dans des procédures stockées?
code pour expliquer:
CREATE PROCEDURE getCompanyByName (IN name VARCHAR(100))
NOT DETERMINISTIC
BEGIN
PREPARE gcbnStatement FROM 'SELECT * FROM Companies WHERE name=? LIMIT 1';
SET @companyName = name;
EXECUTE gcbnStatement USING @companyName;
DEALLOCATE PREPARE gcbnStatement;
END $$
Donc - la déclaration doit DEALLOCATE être là ou non? À votre santé!
/Victor
Merci ... Bien que ce ne soit pas un "pourquoi" c'est certainement la meilleure réponse du lot;) – Victor
MySQL docs dit aussi: "Une instruction préparée est aussi globale à la session. une routine stockée, _it n'est pas désaffectée lorsque la routine stockée se termine._ ". Par conséquent, je libérerais explicitement après avoir fini l'exécution. – Yasir