Объявление и использование переменных MySQL varchar

Я пытаюсь сделать несколько простых манипуляций с переменными в MySQL 5.0, но не могу заставить его работать. Я видел много (очень!) Разных синтаксисов для DECLARE / SET, я не уверен, почему ... в любом случае я, по-видимому, путаю их / выбираю неправильный / смешиваю их.

Вот минимальный фрагмент, который терпит неудачу:

DECLARE FOO varchar(7);
DECLARE oldFOO varchar(7);
SET FOO = '138';
SET oldFOO = CONCAT('0', FOO);

update mypermits 
   set person = FOO 
 where person = oldFOO;

Я также попытался обернуть это с НАЧАЛО ... КОНЕЦ; и как ПРОЦЕДУРА. В этом случае MySQL Workbench услужливо сообщает мне: «Ошибка синтаксиса SQL рядом с ')'» в первой строке и «Ошибка синтаксиса SQL рядом с 'DECLARE oldFOO varchar (7)'» во второй. В противном случае он выдает обе строки как ошибки в полном объеме, с "ошибкой синтаксиса SQL рядом ..." на обеих.

Изменить: я забыл упомянуть, что я пробовал с и без @s на переменных. Некоторые ресурсы имели это с, другие без.

Какую глупую ошибку я делаю?