LoslegenKostenlos loslegen

do-Anweisungen schreiben

Beim Bereinigen von Daten kommen häufig Datensätze mit ungültigen Datumsangaben vor. Das würde eine Exception auslösen und unsere SQL-Anweisung stoppen. Mit einer DO-Funktion und einem Exception-Handler läuft unsere Anweisung jedoch bis zum Ende durch. Schau dir an, wie wir diese Art von Exception mit der Tabelle patients und der Spalte created_on abfangen können. Dabei bekommst du auch die Gelegenheit, eine Funktion im DO-Stil zu verwenden.

Diese Übung ist Teil des Kurses

Transaktionen und Fehlerbehandlung in PostgreSQL

Kurs anzeigen

Anleitung zur Übung

  • Erstelle eine DO-Funktion, um das Abfangen einer Exception zu starten.
  • BEGINNE eine Transaktion, in der du die Zeile (a1c = 5.8, glucose = 89, fasting = TRUE und created_on = '37-03-2020 01:15:54') in patients INSERT-est.
  • Füge einen EXCEPTION-Handler hinzu, der im Fehlerfall 'bad date' in die Spalte detail der Tabelle errors einfügt.
  • Gib die Sprache 'plpgsql' an.

Interaktive Übung

Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.

-- 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;
Code bearbeiten und ausführen