হ্যাঁ, স্টোরড প্রসিডিউর ব্যবহার করে একক ক্যোয়েরিতে দুটি টেবিলে ইনসার্ট করা যায়।
প্রথম টেবিল তৈরি করা
mysql> create table DemoTable ( StudentId int NOT NULL AUTO_INCREMENT PRIMARY KEY, StudentFirstName varchar(20) ); Query OK, 0 rows affected (0.56 sec)
দ্বিতীয় টেবিল তৈরি করা
mysql> create table DemoTable2 ( ClientId int NOT NULL AUTO_INCREMENT PRIMARY KEY, ClientName varchar(20), ClientAge int ); Query OK, 0 rows affected (0.76 sec)
স্টোরড প্রসিডিউর তৈরি করা
mysql> DELIMITER // mysql> CREATE PROCEDURE insert_into_twoTables(name varchar(100),age int) BEGIN INSERT INTO DemoTable(StudentFirstName) VALUES(name); INSERT INTO DemoTable2(ClientName,ClientAge) VALUES(name,age); END // Query OK, 0 rows affected (0.14 sec) mysql> DELIMITER ;
প্রসিডিউর কল করা
mysql> call insert_into_twoTables('Tom',38); Query OK, 1 row affected, 1 warning (0.41 sec)
প্রথম টেবিল চেক করা
mysql> select * from DemoTable;
+-----------+------------------+ | StudentId | StudentFirstName | +-----------+------------------+ | 1 | Tom | +-----------+------------------+ 1 row in set (0.00 sec)
দ্বিতীয় টেবিল চেক করা
mysql> select * from DemoTable2;
+----------+------------+-----------+ | ClientId | ClientName | ClientAge | +----------+------------+-----------+ | 1 | Tom | 38 | +----------+------------+-----------+ 1 row in set (0.00 sec)
ব্যাখ্যা: স্টোরড প্রসিডিউর একাধিক SQL স্টেটমেন্ট ক্যাপসুলেট করে। DELIMITER পরিবর্তন করে প্রসিডিউর বডি লেখা হয়। CALL দিয়ে এক্সিকিউট করা হয়।