मैं कर्सर में LIMIT का उपयोग करना चाहता हूं। कर्सर को लूप के भीतर कई बार इस्तेमाल और अद्यतन किया जाना चाहिए, प्रत्येक बार LIMIT के विभिन्न मानकों के साथ। यहाँ कुछ कोड:संग्रहीत प्रक्रिया में गतिशील कर्सर
DELIMITER $$
CREATE PROCEDURE `updateIt`() READS SQL DATA
BEGIN
declare done int(1) default 0;
declare counter int(10) default 0;
declare xabc int(10) default 0;
declare tab1Cursor cursor for select abc from tab1 limit 100000*counter, 100000;
declare continue handler for not found set done=1;
loopCounter: LOOP
set done = 0;
open tab1Cursor;
igmLoop: loop
fetch tab1Cursor into xabc;
if done = 1 then leave igmLoop; end if;
-- do something
end loop igmLoop;
close tab1Cursor;
if (counter = 1039)
leave loopCounter;
end if;
set counter = counter + 1;
END LOOP loopCounter;
END $$
DELIMITER ;
लेकिन यह (मैं भी लूप counterLoop में कर्सर के साथ इसे करने की कोशिश) काम नहीं करता। क्या माइस्क्ल गतिशील कर्सर से निपट सकता है?
से एक कर्सर में तालिका नाम और स्तंभ नाम पारित करने के लिए का एक उदाहरण है। यह मेरी समस्या के लिए काम कर सकता है। मैं कोशिश करता हूँ – Marcus
हजार धन्यवाद @ Pentium10 – gca
इस उत्तर का बड़ा हिस्सा http://forums.mysql.com/read.php?61,116597,226041 से plagarized प्रतीत होता है शायद उचित विशेषता उचित होगी। – Rob