Gestione elegante delle eccezioni

Transazioni e gestione degli errori in PostgreSQL

Jason Myers

Principal Engineer

Degradazione graduale in azione

DO $$
BEGIN
    UPDATE cookies SET quantity = quantity-6 WHERE name = 'Linga';
EXCEPTION 
    WHEN check_violation THEN
        INSERT INTO errors (msg) values ('Quantity can not be less than 0');
        UPDATE cookies SET quantity = 0 WHERE name = 'Linga';
        INSERT INTO errors (msg) values ('Set quantity to the 0 for Linga.');
END$$;
Transazioni e gestione degli errori in PostgreSQL

Quando usare la degradazione graduale

  • Caricare dati da un sistema esterno sostituendo i null con 0
  • Ricevere letture da uno strumento accurato solo fino a una certa soglia
  • Ricevere date fuori intervallo da impostare a un valore sentinella
  • Scrivere in un’altra tabella tutti i record che generano eccezioni per un’elaborazione successiva
Transazioni e gestione degli errori in PostgreSQL

Quando considerare la gestione elegante delle eccezioni

  • Quando il nuovo valore sarebbe occultato da un’operazione matematica come somma, media o altre aggregazioni.
  • Quando il nuovo valore influisce su dati in una serie temporale.
Transazioni e gestione degli errori in PostgreSQL

Passiamo alla pratica!

Transazioni e gestione degli errori in PostgreSQL

Preparing Video For Download...