Ik kwam hetzelfde probleem tegen met MySQL Workbench. Volgens de MySQL-documentatie
, de DECLARE
"statement declareert lokale variabelen binnen opgeslagen programma's." Dat betekent blijkbaar dat het alleen gegarandeerd werkt met opgeslagen procedures/functies.
De oplossing voor mij was om gewoon de DECLARE
. te verwijderen statement, en introduceer de variabele in de SET
uitspraak. Voor uw code zou dat betekenen:
-- 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;