In MySQL Variablen mit dem @ sigil sind Sitzungsvariablen, keine lokalen Variablen. Sitzungsvariablen unterscheiden sich von lokalen Variablen, auch wenn sie denselben Namen haben, abgesehen von @ Siegel.
Siehe auch einige meiner früheren Antworten dazu:
- "@"-Symbol in gespeicherter Prozedur?
- MySql-Syntaxfehler bei Prozedurparameter
- Null-Fehler bei gespeicherter Prozedur