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
Istruzioni dell'esercizio
- Crea una funzione
DOper iniziare a intercettare un'eccezione. - BEGIN una transazione in cui esegui
INSERTdella riga (a1c=5.8,glucose=89,fasting=TRUEecreated_on= '37-03-2020 01:15:54') in patients. - Aggiungi un gestore
EXCEPTIONche inserisca'bad date'nella colonnadetaildella tabellaerrorsin 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;