MySQL संग्रहीत प्रक्रिया कोड के अज्ञात ब्लॉक के निष्पादन का समर्थन नहीं करता है।
आपको उस कोड सहित संग्रहीत प्रक्रिया बनाने की आवश्यकता है और फिर इसे आमंत्रित करें।
इसके अलावा, आप अपने सम्मिलित बयानों के अंत में सेमी-कोलन खो रहे थे। मैंने तय किया आप शायद नाम उत्पन्न करने के लिए + के बजाय concat() का उपयोग करना चाहते हैं, लेकिन मैं आपको वह परिवर्तन छोड़ दूंगा।
DELIMITER $$
DROP PROCEDURE IF EXISTS insert_ten_rows $$
CREATE PROCEDURE insert_ten_rows()
BEGIN
DECLARE crs INT DEFAULT 0;
WHILE crs < 10 DO
INSERT INTO `continent`(`name`) VALUES ('cont'+crs);
SET crs = crs + 1;
END WHILE;
END $$
DELIMITER ;
प्रक्रिया आह्वान:
प्रक्रिया बनाएं
CALL insert_ten_rows();
स्रोत
2012-07-16 14:33:21
'शुरू घोषित सीआरएस INT; एसईटी @ सीआरएस = 0; WHILE crs <10 DO INNTERT \ 'महाद्वीप \' (\ 'नाम \') में मूल्य ('cont' + @ crs) SET @crs = crs + 1; अंत WHILE; अंत; 'यह इस तरह से काम नहीं कर रहा है – NiCU
': =' – diEcho
के साथ असाइन करें जो त्रुटि मुझे मिलती है वह कहती है: # 1064 - आपको अपने SQL वाक्यविन्यास में कोई त्रुटि है; 'DECLARE @crs INT' के पास उपयोग करने के लिए सही वाक्यविन्यास के लिए आपके MySQL सर्वर संस्करण से मेल खाने वाले मैन्युअल की जांच करें – NiCU