อย่างที่เราทราบดีว่าเมื่อใดก็ตามที่มีข้อยกเว้นเกิดขึ้นในกระบวนงานที่เก็บไว้ของ MySQL สิ่งสำคัญคือต้องจัดการกับมันด้วยการโยนข้อความแสดงข้อผิดพลาดที่เหมาะสม เพราะหากเราไม่จัดการกับข้อยกเว้น จะมีโอกาสเกิดความล้มเหลวของแอปพลิเคชันด้วยข้อยกเว้นบางประการในกระบวนงานที่เก็บไว้ . 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' คอลัมน์นั้นจะดำเนินการต่อไป ให้ชุดผลลัพธ์ของแบบสอบถามที่เขียนในขั้นตอน 'select * from student_detail' และตั้งค่าตัวแปร got_error เป็น 1 .
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)