No MySQL, variáveis com o
@
sigil são variáveis de sessão, não variáveis locais. As variáveis de sessão são diferentes das variáveis locais, mesmo que tenham o mesmo nome diferente de @
sigilo. Veja também algumas das minhas respostas anteriores sobre isso:
- "@" símbolo no procedimento armazenado?
- Erro de sintaxe do MySQL no parâmetro do procedimento
- Erro de procedimento armazenado nulo