J'ai rencontré le même problème en utilisant MySQL Workbench. Selon la documentation MySQL
, le DECLARE
"instruction déclare des variables locales dans les programmes stockés." Cela signifie apparemment qu'il est uniquement garanti de fonctionner avec des procédures/fonctions stockées.
La solution pour moi était simplement de supprimer le DECLARE
et introduisez la variable dans le SET
déclaration. Pour votre code, cela signifierait :
-- 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;