Ho riscontrato lo stesso problema utilizzando MySQL Workbench. Secondo la documentazione MySQL
, il DECLARE
"l'istruzione dichiara le variabili locali all'interno dei programmi memorizzati." Ciò apparentemente significa che è garantito che funzioni solo con procedure/funzioni archiviate.
La soluzione per me era semplicemente rimuovere il DECLARE
istruzione e introduci la variabile nel SET
dichiarazione. Per il tuo codice ciò significherebbe:
-- 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;