Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

Handler ném thông báo lỗi và thoát thực thi trong MySQL stored procedure

Ví dụ handler EXIT ném thông báo tùy chỉnh khi lỗi trùng khóa:

mysql> DELIMITER //
mysql> CREATE PROCEDURE Insert_Studentdetails3(
    S_Studentid INT, S_StudentName VARCHAR(20), S_Address VARCHAR(20))
    -> BEGIN
    -> DECLARE EXIT HANDLER FOR SQLEXCEPTION SELECT 'Got an error';
    -> 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)

Chèn thành công (id=105):

mysql> CALL Insert_Studentdetails3(105, 'Mohan', 'Chandigarh');
+-----------+-------------+------------+
| Studentid | StudentName | address    |
+-----------+-------------+------------+
| 100       | Gaurav      | Delhi      |
| 101       | Raman       | Shimla     |
| 103       | Rahul       | Jaipur     |
| 104       | Ram         | Chandigarh |
| 105       | Mohan       | Chandigarh |
+-----------+-------------+------------+

Chèn trùng khóa (id=105 lại):

mysql> CALL Insert_Studentdetails3(105, 'Sohan', 'Bhopal');
+--------------+
| Got an error |
+--------------+
| Got an error |
+--------------+

Thoát ngay, không chạy SELECT *, chỉ hiển thị thông báo 'Got an error'.