Jeg løb ind i det samme problem med MySQL Workbench. Ifølge MySQL-dokumentationen
, DECLARE "sætning erklærer lokale variabler i lagrede programmer." Det betyder tilsyneladende, at det kun er garanteret at arbejde med lagrede procedurer/funktioner.
Løsningen for mig var simpelthen at fjerne DECLARE sætning, og indfør variablen i SET udmelding. For din kode ville det betyde:
-- DECLARE FOO varchar(7);
-- DECLARE oldFOO varchar(7);
-- the @ symbol is required
SET @FOO = '138';
SET @oldFOO = CONCAT('0', FOO);
UPDATE mypermits SET person = FOO WHERE person = oldFOO;