Deklarieren und Verwenden von MySQL-Variablen varchar

Ich versuche, einige einfache Manipulationen mit Variablen in MySQL 5.0 durchzuführen, aber ich kann es nicht ganz zum Laufen bringen. Ich habe viele (sehr!) Verschiedene Syntaxen für DECLARE / SET gesehen, ich bin mir nicht sicher, warum ... auf jeden Fall ich sie vermutlich verwirre / die falsche auswähle / sie mische.

Hier ist ein minimales Fragment, das fehlschlägt:

DECLARE FOO varchar(7);
DECLARE oldFOO varchar(7);
SET FOO = '138';
SET oldFOO = CONCAT('0', FOO);

update mypermits 
   set person = FOO 
 where person = oldFOO;

Ich habe auch versucht, es mit BEGIN ... END zu verpacken. und als VERFAHREN. In diesem Fall teilt mir MySQL Workbench hilfreich mit: "SQL-Syntaxfehler in der Nähe von ')'" in der ersten Zeile und "SQL-Syntaxfehler in der Nähe von 'DECLARE oldFOO varchar (7)'" in der zweiten Zeile. Andernfalls werden beide Zeilen vollständig als Fehler ausgegeben, wobei auf beiden "SQL-Syntaxfehler in der Nähe von ..." steht.

Edit: Ich habe vergessen zu erwähnen, dass ich es mit und ohne @s auf den Variablen ausprobiert habe. Einige Ressourcen hatten es mit, andere ohne.

Welcher blöde Fehler mache ich?

Antworten auf die Frage(14)

Ihre Antwort auf die Frage