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