স্টোরড প্রোসিডিউরে এক্সসেপশন হলে সঠিক এরর মেসেজ দেওয়া জরুরি, না হলে অ্যাপ্লিকেশন ফেইল হতে পারে। MySQL SQLSTATE ব্যবহার করে ডিফল্ট এরর দিয়ে এক্সিকিউশন বন্ধ করার হ্যান্ডলার দেয়। উদাহরণ হিসেবে প্রাইমারি কি কলামে ডুপ্লিকেট ভ্যালু ইনসার্ট করার চেষ্টা করা হলো।
উদাহরণ
mysql> Delimiter //
mysql> Create Procedure Insert_Studentdetails4(S_Studentid INT, S_StudentName Varchar(20), S_Address Varchar(20),OUT got_error INT)
-> BEGIN
-> DECLARE EXIT HANDLER FOR 1062 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)
এখন ডুপ্লিকেট 'studentid' ইনসার্ট করলে এক্সিকিউশন বন্ধ হয়ে যাবে, প্রোসিডিউরের সিলেক্ট কোয়ারী রান হবে না, ডিফল্ট MySQL এরর ১০৬২ দেখাবে এবং got_error ১ সেট হবে।
mysql> Delimiter ; mysql> CALL Insert_Studentdetails4(104,'Ram','Chandigarh',@got_error); Query OK, 0 rows affected (0.00 sec) mysql> Select @got_error; +------------+ | @got_error | +------------+ | 1 | +------------+ 1 row in set (0.00 sec)