Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Deklarieren und Verwenden von MySQL-Varchar-Variablen

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;