/* * Definieren Sie eine History-Tabelle "lehrperson_history" für * die Tabelle "lehrperson". Die Tabelle "lehrperson_history" soll * dieselben Attribute enthalten, wie die Tabelle "lehrperson". * Darüber hinaus soll sie zwei zusätzlich Attribute enthalten: * - h_modifikation (ENUM mit vier Werten: 'INSERT', 'DELETE', 'UPDATE-OLD', 'UPDATE-NEW') * - h_zeitstempel (Zeitpunkt der Änderung) * * UNIQUE Contraints und FOREIGN KEYs sollten Sie für diese Tabelle * nicht definieren, wohl aber einen geeigneten PRIMARY KEY. * * Schreiben Sie drei geeignete Trigger für die Tabelle "lehrperson", * die ZUSÄTZLICH folgende Operationen ausführen: * * DELETE: Das gelöschte Tupel wird in die History-Tabelle eingetragen * und mit "DELETE" markiert. * INSERT: Das neue Tupel wird in die History-Tabelle eingetragen * und mit "INSERT" markiert. * UPDATE: Das alte Tupel wird in die History-Tabelle eingetragen * und mit "UPDATE-OLD" markiert. * Das neue Tupel wird in die History-Tabelle eingetragen * und mit "UPDATE-NEW" markiert. * Beide Einträge erhalten einen identischen Zeitstempel. * * Führen Sie anschließend nacheinander die nachfolgenden SQL-Befehle * aus (in der vorgegebenen Reihenfolge). * Das Ergebnis der letzten SELECT-Anweisung sollte folgendermaßen aussehen: * * lp_id lp_kuerzel lp_anrede lp_titel lp_name lp_email lp_zugeordnet_zu lp_status h_modifikation h_timestamp * ============================================================================================================================================================= * 1300 ce Herr Prof. Dr. Clemens Espe norbert.gerth@hs-augsburg.de 3 Professor INSERT 2019-12-12 11:11:20.623988 * 1300 ce Herr Prof. Dr. Clemens Espe norbert.gerth@hs-augsburg.de 3 Professor UPDATE-OLD 2019-12-12 11:13:34.467547 * 1300 ce Herr Prof. Dr. Clemens Espe clemens.espe@hs-augsburg.de 3 Professor UPDATE-NEW 2019-12-12 11:13:34.467547 * 1300 ce Herr Prof. Dr. Clemens Espe clemens.espe@hs-augsburg.de 3 Professor DELETE 2019-12-12 11:13:59.176544 */ -- Lösung der Aufgabe -- Anweisungen zum Testen der Lösung INSERT INTO lehrperson(lp_id, lp_kuerzel, lp_anrede, lp_titel, lp_name, lp_email, lp_zugeordnet_zu, lp_status) VALUES (1300, 'ce','Herr', 'Prof. Dr.', 'Clemens Espe', 'norbert.gerth@hs-augsburg.de', 3, 'Professor' ); INSERT INTO professor(lp_id, p_dienstzimmer, p_sprechstunde) VALUES (1300, 'J2.06', 'Freitag, 13:00-14:00 Uhr'); SELECT * FROM lehrperson_history; UPDATE lehrperson SET lp_email = 'clemens.espe@hs-augsburg.de' WHERE lp_kuerzel = 'ce' ; SELECT * FROM lehrperson_history; DELETE FROM professor WHERE lp_id = (SELECT lp_id FROM lehrperson WHERE lp_kuerzel = 'ce') ; SELECT * FROM lehrperson_history; DELETE FROM lehrperson WHERE lp_kuerzel = 'ce' ; SELECT * FROM lehrperson_history;