web-dev-qa-db-fra.com

Essayez d'attraper l'équivalent dans Postgres

Avons-nous un try catch équivalent dans Postgres? J'ai écrit quelques fonctions définies par l'utilisateur qui sont appelées par déclencheur. Je ne veux pas ignorer les erreurs afin que le flux ne soit pas interrompu.

7
FastTurtle

L'équivalent de la gestion des erreurs TRY-CATCH dans PostgreSQL est un bloc de code de cette manière:

[ <<label>> ]
[ DECLARE
    declarations ]
BEGIN
    statements
EXCEPTION
    WHEN condition [ OR condition ... ] THEN
        handler_statements
    [ WHEN condition [ OR condition ... ] THEN
          handler_statements
      ... ]
END;

Jetez un œil aux documents de Postgres sur Erreurs de piégeage

Si vous souhaitez l'utiliser dans vos fonctions, gardez à l'esprit qu'il ne peut être utilisé qu'à l'intérieur des fonctions PL/pgSQL.

9
McNets