Oracle PL/SQL Grundkurs

Trigger erstellen

Testen Sie unsere 1983 Kurse

10 Tage kostenlos!

Jetzt testen Alle Abonnements anzeigen
Ein Trigger ist ein PL/SQL-Programm, das bei einem bestimmten Ereignis durch die Oracle Database automatisch ausgeführt wird. In diesem Video sehen Sie, wie Sie Trigger programmieren, um hiermit die Ausführung wichtiger Anweisungen sicherzustellen.

Transkript

Trigger sind benannte PL/SQL-Programme, die die Oracle Database automatisch ausführt, sobald ein bestimmtes Ereignis eintritt. In diesem Video werden wir einen sogenannten Simple DML-Trigger für unser durchgehendes BMI-Progammierbeispiel erstellen. Unser Trigger soll jedes Mal ausgelöst werden, wenn der Benutzer einen neuen Datensatz in die Tabelle messung einfügt. Ich öffne jetzt eine neue Datei, die ich kap05 bmi trigger nennen werde. edit kap05 bmi trigger. Jetzt werde ich hier auch noch, die Syntax auf SQL einstellen. Dann habe ich das richtige Syntax Highlighting. Und jetzt können wir loslegen. Zunächst brauchen wir den Kopf der Simple DML-Triggers. Da ein Trigger, genau so wie eine Procedure, auch nur ein benanntes PL/SQL-Programm ist, sieht auch der Kopf des SQL-Programms, also des Triggers, genau so aus. Ich schreibe also, CREATE OR REPLACE und jetzt muss allerdings dann TRIGGER dort stehen. Und jetzt folgt der Name des Triggers, bmi_trigger. Der Trigger bmi_trigger wird, genauso wie eine Procedure, in der Oracle Database abgespeichert werden. Aber wir werden den Trigger nicht manuell, wie bislang mit dem Schlüsselwort execute ausführen können. Denn nur die Oracle Database darf ein Trigger ausführen. In der Praxis, werden Trigger häufig für das Login eingesetzt oder um Statistiken zu generieren. Aber denkbar sind auch viele andere Anwendungsfälle bei denen einen Trigger beispielsweise die referenzielle oder fachliche Integrität sicherstellt. Oder auch bei Speicherplatzprobleme, eine E-Mail zu versenden. Hierfür bietet PL/SQL eine Vielzahl an unterschiedlichen Triggertypen an. Je nachdem, ob das auslösende Ereignis auf eine Datenbanktabelle einer View, einem Schema oder einer Datenbank basiert, unterscheidet sich die Syntax und sind andere Finessen möglich und anderer Einschränkungen zu berücksichtigen. Wir werden also in diesem Video nicht die Fühle an Möglichkeiten behandeln können. Stattdessen werden wir den gängigsten Triggertypen behandeln und der nennt sich DML-Trigger. Das heißt, es geht um einen Trigger, der durch Data Manipulating SQL- Anweisung ausgelöst wird. Gemeint sind ja Änderungen auf Datenbanktabellen, die mit den Schlüsselwörtern INSERT, DELETE oder UPDATE hervorgerufen werden. Aber bei dem DML-Triggern unterscheidet man zwischen weiteren Untertypen. Nämlich den Simpel DML-Trigger, den Compound DML-Trigger, und den Instead of DML-Trigger. Compound DML-Triggern bieten die Möglichkeit, die Änderungen von Ereignisse auf unterschiedlichen Datenbankobjekten zu koordinieren und zu steuern. Instead of DML-Triggern werden eingesetzt, um dem Benutzer Änderungsversuch auf USE, zu simulieren oder zu verwirklichen. Der Simpel DML-Trigger ist entgegen etwas einfacher und in der Praxis auch der gängigste. Ihm obliegt die Aufgabe bei Änderungen, auf einer einzigen Tabelle zu reagieren. Fahren wir also fort, um unseren Trigger zu programmieren. Im Programm müssen wir hier als nächstes über die Schlüsselwörter BEFORE oder AFTER anzeigen, ob der Simpel DML-Trigger, vor oder nach dem Ereignis ausgelöst werden soll. Für unser Beispiel werde ich das Schlüsselwort BEFORE einsetzen. Ich schreibe es einfach mal hier so rein. Hinter den Schlüsselwörtern BEFORE oder AFTER, müssen wir nun anzeigen, um welches Ereignis es sich handelt. Zur Auswahl stehen die Schlüsselwörter INSERT, UPDATE oder DELETE. Weil wir in unserem Beispiel eine Reaktion auf das Einfügen eines Datensatzes brauchen, muss ich das Schlüsselwort INSERT nutzen. Also, schreibe ich INSERT hierhinein. Danach füge ich das Schlüsselwort ON hinzu, um den Namen der Datenbanktabelle anzuzeigen. Und das ist ja die Datenbanktabelle messung. So, soweit so gut! Jetzt müssen wir anzeigen, was passieren soll. Das macht man im Ausführungsabschnitt. Hier werde ich zunächst mal, das Schlüsselwort BEGIN schreiben, um den Ausführungsabschnitt einzuleiten. Und als Reaktion werden wir einfach nur eine Ausgabe auf die Konsole rausschreiben. Das macht man über dbms_output.put_line und hier drin schreibe ich jetzt Eine Messung wird abgespeichert! Das PL/SQL-Programm schließen wir mit END ab. Ein Schrägstrich noch für SQL Plus, damit es das Programm ausführt. Und schon sind wir fertig. Jetzt speicher ich das Programm ab. Ich schließe Notepad++. Ich starte das SQL-Skript kap05_bmi_trigger. Und schon ist unser Trigger erzeugt. Jetzt wo der Trigger erzeugt worden ist, werde ich dafür sorgen, dass das Auslösen der Ereignis stattfindet. Hierfür werde ich die Procedure messung_speichern ausführen. Also, execute messung_speichern Alex 695 Und hier sehen Sie jetzt, dass diese Meldung, Eine Messung wird abgespeichert, die kommt von unserem Trigger. In dem Video habe ich gezeigt, wie Sie ein Simple DML-Trigger programmieren. Unser Trigger wurde automatisch von der Oracle Database ausgelöst, als wir einen Datensatz in die Tabelle messung einfügten.

Oracle PL/SQL Grundkurs

Entdecken Sie grundlegende Programmstrukuren, Stored Procedures und Functions in PL/SQL und sehen Sie, wie Sie auf Daten zugreifen können.

3 Std. 58 min (32 Videos)
Derzeit sind keine Feedbacks vorhanden...
 

Dieser Online-Kurs ist als Download und als Streaming-Video verfügbar. Die gute Nachricht: Sie müssen sich nicht entscheiden - sobald Sie das Training erwerben, erhalten Sie Zugang zu beiden Optionen!

Der Download ermöglicht Ihnen die Offline-Nutzung des Trainings und bietet die Vorteile einer benutzerfreundlichen Abspielumgebung. Wenn Sie an verschiedenen Computern arbeiten, oder nicht den ganzen Kurs auf einmal herunterladen möchten, loggen Sie sich auf dieser Seite ein, um alle Videos des Trainings als Streaming-Video anzusehen.

Wir hoffen, dass Sie viel Freude und Erfolg mit diesem Video-Training haben werden. Falls Sie irgendwelche Fragen haben, zögern Sie nicht uns zu kontaktieren!