Tôi gặp phải vấn đề tương tự khi sử dụng MySQL Workbench. Theo tài liệu MySQL
, DECLARE
"câu lệnh khai báo các biến cục bộ trong các chương trình được lưu trữ." Điều đó rõ ràng có nghĩa là nó chỉ được đảm bảo hoạt động với các thủ tục / chức năng được lưu trữ.
Giải pháp cho tôi là chỉ cần xóa DECLARE
và giới thiệu biến trong SET
bản tường trình. Đối với mã của bạn, điều đó có nghĩa là:
-- 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;