কম্পিউটার

আমরা কিভাবে MySQL হ্যান্ডলার লিখতে পারি, একটি সংরক্ষিত পদ্ধতিতে, যেটি ডিফল্ট MySQL ত্রুটির জন্য SQLSTATE ব্যবহার করে এবং এক্সিকিউশন থেকে প্রস্থান করে?


যেহেতু আমরা জানি যে যখনই MySQL সঞ্চিত পদ্ধতিতে একটি ব্যতিক্রম ঘটেছে, সঠিক ত্রুটি বার্তা ছুঁড়ে এটি পরিচালনা করা খুবই গুরুত্বপূর্ণ কারণ যদি আমরা ব্যতিক্রমটি পরিচালনা না করি, তাহলে একটি সংরক্ষিত পদ্ধতিতে সেই নির্দিষ্ট ব্যতিক্রমের সাথে অ্যাপ্লিকেশন ব্যর্থ হওয়ার সুযোগ থাকবে। . MySQL একটি হ্যান্ডলার প্রদান করে যা ডিফল্ট 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' কলামের কোনো ডুপ্লিকেট মান যোগ করার চেষ্টা করি তাহলে এটি এক্সিকিউশন থেকে বেরিয়ে যাবে, এটি 'select * from student_detail' পদ্ধতিতে লেখা কোয়েরির ফলাফল সেট দেয়নি এবং শুধুমাত্র ডিফল্ট MySQL ত্রুটি বার্তা দেয় 1062 ডুপ্লিকেট মান সন্নিবেশিত করার বিষয়ে এবং পরিবর্তনশীল got_error এর মান 1 এ সেট করুন।

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)

  1. কিভাবে আমরা একটি MySQL ট্রিগার তৈরি এবং ব্যবহার করতে পারি?

  2. মাইএসকিউএল সংরক্ষিত পদ্ধতিতে কীভাবে লুপ ব্যবহার করবেন?

  3. কিভাবে সংরক্ষিত পদ্ধতিতে IF ব্যবহার করবেন এবং MySQL এ নির্বাচন করবেন?

  4. কিভাবে সঠিকভাবে একটি MySQL সঞ্চিত পদ্ধতিতে ডিলিমিটার ব্যবহার করবেন এবং মান সন্নিবেশ করবেন?