Zacznij terazZacznij za darmo

Pisanie instrukcji DO

Podczas czyszczenia danych często można natrafić na błędne daty. Taka sytuacja powoduje wyjątek i przerywa wykonywanie instrukcji SQL. Używając jednak funkcji DO z obsługą wyjątków, można doprowadzić instrukcję do końca. Zobaczmy, jak można obsłużyć tego rodzaju wyjątek na przykładzie tabeli patients i kolumny created_on. Przy okazji wypróbujemy funkcję w stylu DO.

To ćwiczenie jest częścią kursu

Transakcje i obsługa błędów w PostgreSQL

Zobacz kurs

Instrukcje do ćwiczenia

  • Utwórz funkcję DO, aby zainicjować przechwytywanie wyjątku.
  • Rozpocznij transakcję (BEGIN), w której za pomocą INSERT dodasz wiersz (a1c = 5.8, glucose = 89, fasting = TRUE, created_on = '37-03-2020 01:15:54') do tabeli patients.
  • Dodaj procedurę obsługi EXCEPTION, która wstawia wartość 'bad date' do kolumny detail tabeli errors w przypadku wystąpienia błędu.
  • Wskaż język 'plpgsql'.

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

-- 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;
Edytuj i uruchom kod