Quando si usano istruzioni preparate all'interno di stored procedure, dovrebbero essere deallocate alla fine della procedura o no, o non importa, e perché?Le dichiarazioni preparate devono essere deallocate quando vengono utilizzate all'interno di stored procedure?
del codice per spiegare:
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 $$
Così - dovrebbe la dichiarazione DEALLOCATE essere lì o no? Saluti!
/Victor
Grazie ... Anche se non è tanto un "perché", è sicuramente la migliore risposta del lotto;) – Victor
I documenti MySQL dicono anche: "Una dichiarazione preparata è anche globale per la sessione. una routine memorizzata, _it non viene deallocato quando termina la routine memorizzata. " Pertanto, vorrei esplicitamente deallocare dopo aver terminato l'esecuzione. – Yasir