मैं MySQL वर्कबेंच का उपयोग करके एक ही समस्या में भाग गया। MySQL प्रलेखन
के अनुसार , DECLARE
"बयान संग्रहीत कार्यक्रमों के भीतर स्थानीय चर घोषित करता है।" इसका स्पष्ट रूप से मतलब है कि यह केवल संग्रहित प्रक्रियाओं/कार्यों के साथ काम करने की गारंटी है।
मेरे लिए समाधान केवल DECLARE
. को हटाना था स्टेटमेंट, और वेरिएबल को SET
. में इंट्रोड्यूस करें बयान। आपके कोड के लिए इसका मतलब होगा:
-- 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;