ComeçarComece de graça

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

Ver curso

Instruções do exercício

  • Crie uma função DO para começar a capturar uma exceção.
  • BEGIN uma transação em que você faz INSERT da linha (a1c = 5.8, glucose = 89, fasting = TRUE e created_on = '37-03-2020 01:15:54') em patients.
  • Adicione um tratador de EXCEPTION que insira 'bad date' na coluna detail da tabela errors em 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;
Editar e executar o código