Я хотел бы переписать обработку исключений PRAGMA EXCEPTION_INIT в MariaDB. Есть ли альтернатива, используемая в Mariadb для обработки исключения?
Ниже представлена хранимая процедура, доступная в Oracle, которую необходимо перенести в Mariadb
DELIMITER //
CREATE OR REPLACE PROCEDURE "TO_ADD"(ST_ID IN TEXT, NAME IN TEXT, NAME_ID IN TEXT, NAME_DESC IN TEXT, USER IN TEXT, S_ID OUT TEXT)
IS
ADT_RET VARCHAR (100);
NAME_ID_COUNT DOUBLE;
**DUP_NAME_ID EXCEPTION;
PRAGMA EXCEPTION_INIT (DUP_NAME_ID, -20101);**
BEGIN
NAME_ID_COUNT := 0;
SELECT COUNT(*) INTO NAME_ID_COUNT
FROM NAMES AS S
INNER JOIN NAME_TYPES AS ST ON ST.NAME_TYPE_ID = S.NAME_TYPE_ID
WHERE ST.NAME_TYPE_ID = ST_ID AND UPPER(S.NAME_ID) = UPPER(NAME_ID);
IF (NAME_ID_COUNT > 0) THEN
CALL aws_oracle_ext.RAISE_APPLICATION_ERROR(- 20101, 'Name id is already present for this organization', FALSE);
END IF;
INSERT INTO Names s
(s.name_id,
s.name_type_id,
s.name,
s.name_id,
s.description) VALUES
(S_ID,
UNHEX(ST_ID),
NAME,
NAME_ID,
NAME_DESC);
COMMIT;
**EXCEPTION
WHEN DUP_NAME_ID THEN RAISE DUP_NAME_ID;**
END;//
DELIMITER ;
Если мы увидим, здесь Прагма exception_init обрабатывается в части исключения. Так как же переписать то же самое для поддержки Mariadb?