এক সারি ইনসার্ট করে বিষয়বস্তু পেতে হলে স্ট্রোড প্রসিডিউর ব্যবহার করতে হয়। প্রথমে একটি টেবিল তৈরি করতে হবে। তারপর একটি স্ট্রোড প্রসিডিউর তৈরি করতে হবে যা একটি সারি ইনসার্ট করবে এবং স্ট্রোড প্রসিডিউর কল করার সাথে সাথে টেবিল থেকে ফলাফল রিটার্ন করবে।
উপরের কাজটি করার জন্য প্রথমে একটি টেবিল তৈরি করা যাক। টেবিল তৈরির কোয়েরি:
mysql> create table InsertRecord_SelectTable -> ( -> Id int NOT NULL AUTO_INCREMENT, -> Name varchar(20), -> PRIMARY KEY(Id) -> ); Query OK, 0 rows affected (1.45 sec)
এখন একটি স্ট্রোড প্রসিডিউর তৈরি করা যাক যা উপরের টেবিলে একটি রেকর্ড ইনসার্ট করবে এবং স্ট্রোড প্রসিডিউর কল করার সাথে সাথে টেবিল থেকে ফলাফল রিটার্ন করবে। স্ট্রোড প্রসিডিউর তৈরির কোয়েরি:
mysql> DELIMITER // mysql> create procedure Insert_select -> ( -> In tempName varchar(40) -> ) -> begin -> declare tempId int unsigned; -> insert into InsertRecord_SelectTable(Name) values (tempName); -> set tempId = last_insert_id(); -> select *from InsertRecord_SelectTable where Id= tempId; -> END // Query OK, 0 rows affected (0.21 sec) mysql> DELIMITER ;
স্ট্রোড প্রসিডিউর কল করে দেখুন, সারি ইনসার্ট হবে এবং বিষয়বস্তু পাওয়া যাবে। স্ট্রোড প্রসিডিউর কল করার কোয়েরি:
CALL yourStoredProcedureName;
এখন আপনার স্ট্রোড প্রসিডিউর কল করুন:
mysql> call Insert_select('John');
আউটপুট নিচে দেওয়া হলো:
+----+------+ | Id | Name | +----+------+ | 1 | John | +----+------+ 1 row in set (0.12 sec) Query OK, 0 rows affected, 1 warning (0.13 sec)
ব্যাখ্যা: স্ট্রোড প্রসিডিউর Insert_select ইনপুট প্যারামিটার tempName নেয়, সেটি টেবিলে ইনসার্ট করে, LAST_INSERT_ID() দিয়ে জেনারেট হওয়া আইডি ভেরিয়েবলে সংরক্ষণ করে, এবং সেই আইডি দিয়ে সিলেক্ট কোয়েরি রান করে ইনসার্ট করা সারিটি রিটার্ন করে। এটি একটি ট্রানজ্যাকশনের মতো আচরণ করে যেখানে ইনসার্ট এবং সিলেক্ট একসাথে সম্পন্ন হয়।