MySQL-এ স্টোরড প্রসিডিউর (Stored Procedure) এবং লুপ (WHILE) ব্যবহার করে নির্দিষ্ট রেঞ্জের মান (যেমন ১০ থেকে ২০) টেবিলে অটোমেটিক ইনসার্ট করা যায়।
টেবিল তৈরি
mysql> CREATE TABLE DemoTable (
-> Value INT
-> );
Query OK, 0 rows affected (0.55 sec)
স্টোরড প্রসিডিউর তৈরি (১০ থেকে ২০ পর্যন্ত)
mysql> DELIMITER //
mysql> CREATE PROCEDURE AutoInsertValuesToTable()
-> BEGIN
-> DECLARE startingRange INT DEFAULT 10;
-> WHILE startingRange <= 20 DO
-> INSERT INTO DemoTable(Value) VALUES(startingRange);
-> SET startingRange = startingRange + 1;
-> END WHILE;
-> END
-> //
Query OK, 0 rows affected (0.23 sec)
mysql> DELIMITER ;
প্রসিডিউর কল করা
mysql> CALL AutoInsertValuesToTable(); Query OK, 1 row affected (1.10 sec)
ইনসার্ট হওয়া ডেটা যাচাই
mysql> SELECT * FROM DemoTable;
আউটপুট
+-------+ | Value | +-------+ | 10 | | 11 | | 12 | | 13 | | 14 | | 15 | | 16 | | 17 | | 18 | | 19 | | 20 | +-------+ 11 rows in set (0.00 sec)
ব্যাখ্যা:
DELIMITER //— ডিফল্ট ডিলিমিটার;কে//এ পরিবর্তন করে, যাতে প্রসিডিউর বডিতে;ব্যবহার করা যায়।DECLARE startingRange INT DEFAULT 10;— ভেরিয়েবল ঘোষণা এবং শুরু মান।WHILE ... DO ... END WHILE— লুপ যা ২০ পর্যন্ত চলে।DELIMITER ;— ডিলিমিটার আবার;এ ফেরত আনা।
সতর্কতা: বড় রেঞ্জের জন্য লুপ ধীর হতে পারে। সেট-বেসড আপরেশন (যেমন রিকার্সিভ CTE বা সিকোয়েন্স টেবিল) দ্রুত হয়।