কম্পিউটার টিউটোরিয়াল

স্টোরড প্রোসিডিউরে ভেরিয়েবল সেট করে এক্সিকিউশন চালিয়ে রাখার হ্যান্ডলার লেখা।


স্টোরড প্রোসিডিউরে এক্সসেপশন হলে সঠিক এরর মেসেজ দেওয়া জরুরি। MySQL ভেরিয়েবল সেট করে এক্সিকিউশন চালিয়ে রাখার হ্যান্ডলার দেয়। প্রাইমারি কি কলামে ডুপ্লিকেট ভ্যালু ইনসার্ট করার উদাহরণ:

mysql> DELIMITER //
mysql> Create Procedure Insert_Studentdetails2(S_Studentid INT, S_StudentName Varchar(20), S_Address Varchar(20),OUT got_error INT)
    -> BEGIN
    -> DECLARE CONTINUE HANDLER FOR SQLEXCEPTION SET got_error=1;
    -> INSERT INTO Student_detail
    -> (Studentid, StudentName, Address)
    -> Values(S_Studentid,S_StudentName,S_Address);
    -> Select * from Student_detail;
    -> END //
Query OK, 0 rows affected (0.00 sec)
mysql> Delimiter ;
mysql> CALL Insert_Studentdetails2(104,'Ram','Chandigarh',@got_error);
+-----------+-------------+------------+
| Studentid | StudentName | address    |
+-----------+-------------+------------+
| 100       | Gaurav      | Delhi      |
| 101       | Raman       | Shimla     |
| 103       | Rahul       | Jaipur     |
| 104       | Ram         | Chandigarh |
+-----------+-------------+------------+
4 rows in set (0.04 sec)
Query OK, 0 rows affected (0.06 sec)

এখন ডুপ্লিকেট 'studentid' ইনসার্ট করলে এক্সিকিউশন চালিয়ে থাকবে, সিলেক্ট কোয়ারীর ফলাফল দেখাবে এবং got_error ১ সেট হবে:

mysql> CALL Insert_Studentdetails2(104,'Shyam','Hisar',@got_error);
+-----------+-------------+------------+
| Studentid | StudentName | address    |
+-----------+-------------+------------+
| 100       | Gaurav      | Delhi      |
| 101       | Raman       | Shimla     |
| 103       | Rahul       | Jaipur     |
| 104       | Ram         | Chandigarh |
+-----------+-------------+------------+
4 rows in set (0.00 sec)
Query OK, 0 rows affected (0.03 sec)
mysql> Select @got_error;
+------------+
| @got_error |
+------------+
| 1          |
+------------+
1 row in set (0.00 sec)

  1. MySQL স্টোরড ফাংশন দিয়ে টেবিলের মান আপডেট করার পদ্ধতি

  2. MySQL ডেটাবেসে সংরক্ষিত ভিউগুলোর লিস্ট দেখা

  3. MySQL-এ স্টোরড প্রসিজার এবং SELECT-এ IF ফাংশন ব্যবহার

  4. MySQL স্টোরড প্রোসিজার ভেরিয়েবল মান আপডেটের সময় অপরিবর্তিত রাখা