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;