Ich bin mit MySQL Workbench auf dasselbe Problem gestoßen. Gemäß der MySQL-Dokumentation
, das DECLARE
"Anweisung deklariert lokale Variablen in gespeicherten Programmen." Das bedeutet anscheinend, dass es nur mit gespeicherten Prozeduren/Funktionen garantiert funktioniert.
Die Lösung für mich war, einfach das DECLARE
zu entfernen -Anweisung und führen Sie die Variable in SET
ein Aussage. Für Ihren Code würde das bedeuten:
-- 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;