Что означает символ @в процедуре в MySQL?

Какая разница между доступом к переменной с помощью @ или без?

Ответы

Ответ 1

@ делает его пользователем, определяемым session. В противном случае это будет локально ограниченная переменная (в хранимой процедуры), вы должны DEFINE разместить свой локальный, прежде чем вы сможете SET его. Вы также можете установить системную переменную global (с помощью SET GLOBAL или SET @@global), если хотите. А также системная переменная сеанса с SET SESSION var или SET @@session var или SET @@var.

Подробнее о SET от документации: Если модификатор отсутствует, SET изменяет переменную сеанса (то, почему вы DEFINE ваши локальные жители в хранимой процедуре сначала). Если вы установили несколько системных переменных, последний оператор GLOBAL или SESSION в инструкции используется для следующих переменных, которые не имеют указанного модификатора.

Подробнее (и несколько хороших примеров) здесь: