Me encontré con el mismo problema usando MySQL Workbench. Según la documentación de MySQL
, el DECLARE
"la declaración declara variables locales dentro de los programas almacenados". Eso aparentemente significa que solo se garantiza que funcione con funciones/procedimientos almacenados.
La solución para mí fue simplemente eliminar DECLARE
e introduce la variable en el SET
declaración. Para su código eso significaría:
-- 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;