IniziaInizia gratis

Scrivere istruzioni do

Durante la pulizia dei dati, capita spesso di imbattersi in date non valide. Questo genererebbe un'eccezione e interromperebbe la nostra istruzione SQL; tuttavia, usando una funzione DO con un gestore delle eccezioni, l'istruzione potrà arrivare fino in fondo. Vediamo come gestire questo tipo di eccezione con la tabella patients e la colonna created_on. Sarà anche l'occasione per usare una funzione in stile DO.

Questo esercizio fa parte del corso

Transazioni e gestione degli errori in PostgreSQL

Visualizza il corso

Istruzioni dell'esercizio

  • Crea una funzione DO per iniziare a intercettare un'eccezione.
  • BEGIN una transazione in cui esegui INSERT della riga (a1c = 5.8, glucose = 89, fasting = TRUE e created_on = '37-03-2020 01:15:54') in patients.
  • Aggiungi un gestore EXCEPTION che inserisca 'bad date' nella colonna detail della tabella errors in caso di errore.
  • Specifica il linguaggio 'plpgsql'.

Esercizio pratico interattivo

Prova a risolvere questo esercizio completando il codice di esempio.

-- Create a DO $$ function
____ ____
-- BEGIN a transaction block
BEGIN 
    INSERT INTO patients (a1c, glucose, fasting, created_on) 
    VALUES (____, ____, ____, '37-03-2020 01:15:54');
-- Add an EXCEPTION
___
-- For all all other type of errors
WHEN others THEN 
    INSERT INTO errors (msg, detail) 
    VALUES ('failed to insert', '____');
END;
-- Make sure to specify the language
$$ language '____';

-- Select all the errors recorded
SELECT * FROM errors;
Modifica ed esegui il codice