ComenzarEmpieza gratis

Escribir sentencias do

Al limpiar datos, es frecuente encontrarnos con fechas no válidas. Esto provocaría una excepción y detendría nuestra sentencia SQL; sin embargo, usando una función DO con un manejador de excepciones, nuestra sentencia podrá ejecutarse hasta el final. Veamos cómo manejar ese tipo de excepción con la tabla patients y la columna created_on. Esto también nos dará la oportunidad de usar una función de estilo DO.

Este ejercicio forma parte del curso

Transacciones y manejo de errores en PostgreSQL

Ver curso

Instrucciones del ejercicio

  • Crea una función DO para empezar a capturar una excepción.
  • BEGIN una transacción en la que hagas INSERT de la fila (a1c = 5.8, glucose = 89, fasting = TRUE y created_on = '37-03-2020 01:15:54') en patients.
  • Añade un manejador EXCEPTION que, en caso de error, inserte 'bad date' en la columna detail de la tabla errors.
  • Especifica el lenguaje 'plpgsql'.

Ejercicio interactivo práctico

Prueba este ejercicio y completa el código de muestra.

-- 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 y ejecutar código