что является альтернативой EXIT HANDLER FOR SQLEXCEPTION (postgresql) - PullRequest
0 голосов
/ 31 октября 2019

----- MYSQL CODE -----

CREATE DEFINER=`uativiza_v3`@`localhost` PROCEDURE `Procedure name`(IN p_processno INT)
BEGIN
  DECLARE EXIT HANDLER FOR SQLEXCEPTION 
  BEGIN
    CALL offline_logger (p_processno,'Exception caught -----Exception caught : RollingBack!') ;
    ROLLBACK ;
  END ;
  START TRANSACTION ;
        Insert into table1 select * from table2
 COMMIT ;
END$$

DELIMITER ;

- Сводка Если в момент вставки возникло какое-либо исключение, то вышеупомянутая процедура вызывает процедуру offline_logger

Выше кода iдолжны мигрировать в postgresql. Итак, как обрабатывать обработчик (исключение) в postgresql

1 Ответ

0 голосов
/ 01 ноября 2019

Это примерно соответствует

CREATE PROCEDURE procedure_name(IN p_processno integer)
   LANGUAGE plpgsql AS
$$BEGIN
   INSERT INTO table1
      SELECT * FROM table2;
EXCEPTION
   WHEN OTHERS THEN
      CALL offline_logger(
              p_processno,
              'Exception caught -----Exception caught : RollingBack!'
           );
END;$$;

. INSERT автоматически откатывается при возникновении исключения.

...