Tôi dường như không thể tìm thấy bất kỳ nơi nào để bắt và phát lại bất kỳ lỗi hoặc cảnh báo nào có thể xảy ra trong quy trình.Cách bắt và phát lại tất cả các lỗi trong MySQL
Những gì tôi muốn là cú pháp để làm như sau:
create procedure myProcedure()
begin
declare exit handler for ANYTHING_WRONG_THAT_CAN_BE_CAUGHT_WARNINGS_INCLUDED
begin
rollback;
RE_THROW THE_THING_THAT_WAS_CAUGHT;
end;
start transaction;
-- do some stuff
commit;
end; //
Lý do được rằng tôi muốn buộc một rollback về lỗi hoặc cảnh báo nhưng để lại nó lên đến khách hàng để quyết định làm gì với lỗi cụ thể.
Các khu vực toàn bộ mũ là các phần mà tôi không biết phải đặt gì.
Cảm ơn bạn đã trợ giúp!
Sửa -------
Tôi đã kể từ khi học thì không thể làm những gì tôi đã yêu cầu:. '(
Thay vào đó tôi có một lỗi duy nhất cho bất cứ điều gì mà đi sai và sử dụng đoạn mã sau:
declare exit handler for sqlwarning, sqlexception begin
rollback;
call error();
end;
(lỗi() không tồn tại)
Câu hỏi này sẽ cung cấp một giải pháp một phần: http://stackoverflow.com/questions/18858567/mysql-exception-handler-access-excep tion-being-handling – djechlin
tại sao 'một phần'? cái gì còn thiếu? – rsanchez