একটি টেবিলের সমস্ত সারি লুপ করতে, MySQL-এ সঞ্চিত পদ্ধতি ব্যবহার করুন। সিনট্যাক্স নিম্নরূপ -
DELIMITER // CONDERPOCEDURENAME () BEGINDECLENAMENAME1 INTEND ডিফল্ট 0; AnyVariablename1 তে Anyvariablename1 থেকে গণনা (*) নির্বাচন করুন; AnyVariablename2 =0 সেট করুন; anyvariablename2উপরের সিনট্যাক্সটি বোঝার জন্য, আসুন দুটি টেবিল তৈরি করি যেমন একটিতে রেকর্ড রয়েছে এবং দ্বিতীয় টেবিলে লুপ থেকে সংরক্ষিত পদ্ধতি ব্যবহার করে রেকর্ড থাকবে।
প্রথম টেবিল −
তৈরি করার জন্য নিচের প্রশ্নটি রয়েছেmysql> টেবিল AllRows তৈরি করুন -> ( -> আইডি int, -> নাম varchar(100) -> );কোয়েরি ঠিক আছে, 0 সারি প্রভাবিত (0.46 সেকেন্ড)সন্নিবেশ কমান্ড ব্যবহার করে প্রথম টেবিলে কিছু রেকর্ড সন্নিবেশ করান। প্রশ্নটি নিম্নরূপ -
mysql> AllRows মান (1,'John'); কোয়েরি ঠিক আছে, 1 সারি প্রভাবিত (0.12 সেকেন্ড)mysql> AllRows মানগুলিতে সন্নিবেশ করুন (100, 'ক্যারল'); কোয়েরি ঠিক আছে, 1 সারি প্রভাবিত (0.13 সেকেন্ড) )mysql> AllRows মানের মধ্যে সন্নিবেশ করুন(300,'Sam');কোয়েরি ঠিক আছে, 1 সারি প্রভাবিত (0.15 সেকেন্ড)mysql> AllRows মানগুলিতে সন্নিবেশ করুন (400,'মাইক'); কোয়েরি ঠিক আছে, 1 সারি প্রভাবিত (0.20 সেকেন্ড)প্রে>সিলেক্ট স্টেটমেন্ট ব্যবহার করে টেবিল থেকে সমস্ত রেকর্ড প্রদর্শন করুন। প্রশ্নটি নিম্নরূপ -
mysql> AllRows থেকে *নির্বাচন করুন;আউটপুট
+------+-------+| আইডি | নাম |+------+------+| 1 | জন || 100 | ক্যারল || 300 | স্যাম || 400 | মাইক | সেটে +------+------+4 সারি (0.00 সেকেন্ড)এখানে একটি দ্বিতীয় টেবিল তৈরি করার প্রশ্ন আছে। একটি টেবিল তৈরি করার প্রশ্নটি নিম্নরূপ -
mysql> টেবিল SecondTableRows তৈরি করুন -> ( -> StudentId int, -> StudentName varchar(100) -> );কোয়েরি ঠিক আছে, 0 সারি প্রভাবিত (0.54 সেকেন্ড)এখন আপনি সঞ্চিত পদ্ধতি ব্যবহার করে একটি টেবিলের সমস্ত সারি লুপ করতে পারেন। সংরক্ষিত পদ্ধতি নিম্নরূপ -
mysql> ডিলিমিটার //mysql> প্রসিডিউর তৈরি করুন Sp_AllRowsOfATable() -> শুরু -> শেষ সারি ঘোষণা করুন INT ডিফল্ট 0; -> ডিক্লার স্টার্ট রোজ ইন ডিফল্ট 0; -> শেষ সারিতে AllRows থেকে COUNT(*) নির্বাচন করুন; -> সেট startRows=0; -> সারি শুরু করার সময়Insert int SecondTableRows(StudentId) সিলেক্ট (Id) থেকে AllRows LIMITstartRows,1; -> সেট startRows=startRows+1; -> শেষ যখন; -> শেষ; -> //কোয়েরি ঠিক আছে, 0টি সারি প্রভাবিত (0.22 সেকেন্ড)mysql> ডিলিমিটার; CALL কমান্ড ব্যবহার করে সংরক্ষিত পদ্ধতিতে কল করুন। সিনট্যাক্স নিম্নরূপ -
আপনার সংরক্ষিত প্রক্রিয়ার নাম কল করুন;প্রথম টেবিলের সমস্ত সারি লুপ করার জন্য উপরের সংরক্ষিত পদ্ধতিটি কল করুন। প্রশ্নটি নিম্নরূপ -
mysql> কল Sp_AllRowsOfATable(); কোয়েরি ঠিক আছে, 1 সারি প্রভাবিত (0.61 সেকেন্ড)সংরক্ষিত পদ্ধতি কল করার পরে, দ্বিতীয় টেবিলের সাথে কি ঘটেছে তা পরীক্ষা করা যাক। প্রশ্নটি নিম্নরূপ -
mysql> SecondTableRows থেকে StudentId নির্বাচন করুন;আউটপুট
<প্রে>+------------+| StudentId |+------------+| 1 || 100 || 300 || 400 |+----------+4 সারি সেটে (0.00 সেকেন্ড)