Wenn vorbereitete Anweisungen in gespeicherten Prozeduren verwendet werden, sollten sie am Ende des Verfahrens freigegeben werden oder nicht, oder spielt es keine Rolle, und warum?Sollten vorbereitete Anweisungen aufgehoben werden, wenn sie in gespeicherten Prozeduren verwendet werden?
Einige Code zu erklären:
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 $$
So - sollte die AUFLÖSEN Aussage da sein oder nicht? Prost!
/Victor
Dank ... Obwohl es nicht viel von einem "Warum" ist, ist es sicherlich die beste Antwort des Loses;) – Victor
MySQL-Dokumente sagt auch: "Eine vorbereitete Anweisung ist auch global für die Sitzung. Wenn Sie eine vorbereitete Anweisung erstellen eine gespeicherte Routine, es wird nicht freigegeben, wenn die gespeicherte Routine endet. Daher würde ich nach Beendigung der Ausführung explizit die Zuordnung aufheben. – Yasir