স্টোরড প্রসিডিউার তৈরি ও কল
MySQL-এ CREATE PROCEDURE দিয়ে প্যারামিটারাইজড ইনসার্ট লজিক এনক্যাপসুলেট করুন। phpMyAdmin-এ SQL ট্যাব থেকে রান করুন।
সিনট্যাক্স
DELIMITER //
CREATE PROCEDURE procedure_name(IN param1 TYPE, IN param2 TYPE)
BEGIN
INSERT INTO table (col1, col2) VALUES (param1, param2);
END //
DELIMITER ;
উদাহরণ
টেবিল তৈরি
mysql> create table StoredProcedureInsertDemo (
-> UserId int NOT NULL AUTO_INCREMENT PRIMARY KEY,
-> UserName varchar(20),
-> UserAge int
-> );
Query OK, 0 rows affected (0.63 sec)
প্রসিডিউার তৈরি
mysql> DELIMITER //
mysql> CREATE PROCEDURE procedure_InsertIntoTable(IN FirstName VARCHAR(100), IN Age INT)
-> BEGIN
-> INSERT INTO StoredProcedureInsertDemo(UserName, UserAge) VALUES (FirstName, Age);
-> END
-> //
Query OK, 0 rows affected (0.34 sec)
mysql> DELIMITER ;
প্রসিডিউার কল
mysql> CALL procedure_InsertIntoTable('Larry', 23);
Query OK, 1 row affected, 1 warning (0.19 sec)
ডেটা যাচাই
mysql> SELECT * FROM StoredProcedureInsertDemo;
আউটপুট
+--------+----------+---------+ | UserId | UserName | UserAge | +--------+----------+---------+ | 1 | Larry | 23 | +--------+----------+---------+
সেরা অনুশীলন:
- ইনপুট ভ্যালিডেশন প্রসিডিউারের ভিতরে করুন
- ট্রানজ্যাকশন ব্যবহার করুন (START TRANSACTION ... COMMIT/ROLLBACK)
- SQL ইনজেকশন রোধে প্রিপেয়ার্ড স্টেটমেন্ট সমতুল্য কাজ করে
- phpMyAdmin-এ "Routines" ট্যাব থেকে প্রসিডিউার ম্যানেজ করুন