Skip to content

Instantly share code, notes, and snippets.

@finoghentov
Created June 27, 2023 09:42
Show Gist options
  • Save finoghentov/f0998c829873ed7c9b5a4b619d30dcda to your computer and use it in GitHub Desktop.
Save finoghentov/f0998c829873ed7c9b5a4b619d30dcda to your computer and use it in GitHub Desktop.
DECLARE errcount INT;
DECLARE errno INT;
DECLARE msg TEXT;
DECLARE vNoRec INTEGER DEFAULT 0;
DECLARE vException INTEGER DEFAULT 0;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET vNoRec = 1;
DECLARE CONTINUE HANDLER FOR SQLEXCEPTION
BEGIN
SET vException = 1;
GET CURRENT DIAGNOSTICS CONDITION 1 errno = MYSQL_ERRNO, msg = MESSAGE_TEXT;
GET CURRENT DIAGNOSTICS errcount = NUMBER;
IF errcount <> 0 THEN
GET CURRENT DIAGNOSTICS CONDITION 1 errno = MYSQL_ERRNO, msg = MESSAGE_TEXT;
END IF;
GET STACKED DIAGNOSTICS CONDITION 1 errno = MYSQL_ERRNO, msg = MESSAGE_TEXT;
END;
START TRANSACTION;
# КАКОЙ-ТО sql запрос
IF vException = 1 THEN
ROLLBACK;
SELECT 'SOME_ERROR_MESSAGE' AS resultCode, errno AS resultErrNo, msg AS resultErrMsg;
LEAVE proc;
END IF;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment