Escrevendo instruções do
É comum, ao limpar dados, recebermos informações com datas inválidas. Isso geraria uma exceção e interromperia nossa instrução SQL; porém, usando uma função DO com um tratador de exceções, nossa instrução será executada até o fim. Vamos ver como lidar com esse tipo de exceção usando a tabela patients e a coluna created_on. Isso também vai nos dar a chance de usar uma função no estilo DO.
Este exercício faz parte do curso
Transações e Tratamento de Erros no PostgreSQL
Instruções do exercício
- Crie uma função
DOpara começar a capturar uma exceção. - BEGIN uma transação em que você faz
INSERTda linha (a1c=5.8,glucose=89,fasting=TRUEecreated_on= '37-03-2020 01:15:54') em patients. - Adicione um tratador de
EXCEPTIONque insira'bad date'na colunadetailda tabelaerrorsem caso de erro. - Especifique a linguagem
'plpgsql'.
Exercício interativo prático
Experimente este exercício completando este código de exemplo.
-- 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;