Fånga specifika undantag
Nu ska vi bygga en DO-funktion som fångar upp när glucose sätts till null och loggar ett meddelande som tydligt anger att Glucose inte får vara null.
Den här övningen är en del av kursen
Transaktioner och felhantering i PostgreSQL
Övningsinstruktioner
- Inuti
BEGIN-blocket i DO-funktionen: användINSERTför att lägga till raden (a1c=7.5,glucose=nullochfasting=TRUE) ipatients. - Lägg till ett
not_null_violation-undantag som infogar"Glucose can not be null."i detaljkolumnen i errors om ett fel uppstår.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
-- Make a DO function
DO $$
-- Open a transaction block
BEGIN
INSERT INTO patients (a1c, glucose, fasting)
VALUES (7.5, ___, TRUE);
-- Catch an Exception
EXCEPTION
-- Make it catch not_null_constraint exception types
WHEN ___ ___
-- Insert the proper msg and detail
INSERT INTO errors (___, detail)
VALUES ('failed to insert', '___');
END$$;
-- Select all the errors recorded
SELECT * FROM errors;