Saya mengalami masalah yang sama menggunakan MySQL Workbench. Menurut dokumentasi MySQL
, DECLARE
"pernyataan mendeklarasikan variabel lokal dalam program yang disimpan." Artinya, itu hanya dijamin untuk bekerja dengan prosedur/fungsi tersimpan.
Solusi bagi saya adalah dengan menghapus DECLARE
pernyataan, dan perkenalkan variabel di SET
penyataan. Untuk kode Anda, itu berarti:
-- 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;