W MySQL zmienne z @ sigil są zmiennymi sesji, a nie zmiennymi lokalnymi. Zmienne sesji różnią się od zmiennych lokalnych, nawet jeśli mają taką samą nazwę, jak @ pieczęć.
Zobacz także kilka moich wcześniejszych odpowiedzi na ten temat:
- "@" w procedurze składowanej?
- Błąd składni MySql w parametrze procedury
- Błąd zerowej procedury przechowywanej