PostgreSQL Erstellen Sie Auslöser nach Einfügen/Aktualisieren/Löschen

PostgreSQL Erstellen Sie Auslöser nach Einfügen/Aktualisieren/Löschen
Wenn in einer definierten Tabelle eine definierte Änderungsaktion (SQL -Einfügung, Aktualisierung, Löschen oder Abkürzung) durchgeführt wird, ist ein Trigger ein Seriensatz von Ereignissen, die automatisch ausgeführt werden. Auslöser können verwendet werden, um Geschäftsregeln aufzuerlegen, Eingabeinformationen zu authentifizieren und einen Prüfungsweg zu verwalten. SQL -Trigger werden gemäß dem SQL -Format implementiert. Es enthält Strukturen, die in mehreren Programmiersprachen verwendet werden, die es Ihnen ermöglichen, lokale Variablen zu deklarieren, den Fluss des Prozesses mit Deklarationen zu überwachen, die Ergebnisse von Anweisungen für Variablen zuzuweisen und Fehler zu behandeln. Sobald Sie einen Auslöser für etwas erstellen, wie eine Tabelle, wird der Auslöser sofort entfernt, sobald die Tabelle entfernt wird. Wir werden uns ansehen, wie Postgresql in diesem Segment funktionieren,.

Syntax:

Das Folgende ist die einfache Syntax zum Erzeugen eines Auslösers:

>> Erstellen Sie Trigger Trigger_name [vor | nach | anstelle] Ereignisname auf Tabelle_Name [---- Trigger Logic];

Hier ist die Erklärung der obigen allgemeinen Abfrage.

  • Trigger_Name: Name eines Auslösers
  • Vor, danach statt: Begriffe, die entscheiden, wann der Auslöser aktiv wäre
  • Veranstaltungsname: Titel des Ereignisses, der den Auslöser ausführen könnte (dies kann sein, egal ob aus Einfügen oder Update oder Löschen)
  • Tabellenname: Gibt die Tabelle an, für die der Auslöser konstruiert wird

Um das Triggerkonzept kurz zu verstehen, starten Sie die Postgresql -Shell aus den Anwendungen. Ändern Sie den Server, wenn Sie auf einem anderen Server arbeiten möchten, oder drücken Sie an, drücken Sie die Eingabetaste von Ihrer Tastatur aus. Fügen Sie den Datenbanknamen hinzu, an dem Sie arbeiten möchten. Wie Sie sehen können, arbeiten wir derzeit als Standard an Port 5432. Sie können es auch ändern. Geben Sie anschließend einen anderen Benutzernamen als Postgres an, wenn Sie mit einem anderen Benutzer arbeiten möchten, oder lassen Sie ihn leer und drücken Sie die Eingabetaste. Jetzt ist Ihre Befehlsschale bereit, verwendet zu werden.

Auslösen beim Befehl Einfügen

Schauen wir uns das Beispiel eines Auslösers an, wenn der Befehl Einfügen als Triggerereignis verwendet wurde. Dafür müssen wir zwei neue Tische erstellen, e.G., "Beschäftigen" und "prüfen". Die Tabelle „beschäftigt“ enthält die persönlichen Aufzeichnungen der Mitarbeiter von einem bestimmten Unternehmen und die Tabelle „Audit“ enthält die Informationen darüber, wann die Mitarbeiter dem Unternehmen beigetreten sind. Die Abfragen zum Erstellen der Tabellen sind unten angegeben.

>> Tabelle erstellen verwendet (ID Ganzzahl nicht Null -Primärschlüssel, Name Varchar (100) NICHT NULL, Altersvarchar (100), nicht null, Gehaltsvarchar (100), nicht null);
>> TABLE -Audit erstellen (Empid Integer Not NULL, Eintrags -Varchar (100) nicht NULL);

Sie müssen eine Prozedur erstellen, die automatisch ausgeführt wird oder funktioniert, wenn der Trigger aufgerufen wird. Es wird im nächsten Befehl creating Trigger verwendet. Aus dem folgenden Befehl können Sie eine Idee erhalten, dass wir ein Prozedur "auditlogfunc ()" erstellt haben, der einen Auslöser als Variable "$ examp_table $" zurückgibt. Die Funktion beginnt mit Beginn -Klausel, gefolgt von der Anweisung Insert. Diese Einfügeanweisung fügt automatische ID und aktuelle Zeitdatum ein, die die integrierte Funktion in der Tabelle „Prüfung“ verwendet und dieses Ergebnis zum Auslösen zurückgibt.

Es ist Zeit, einen Auslöser mit dem Befehl create Trigger zu erstellen. Wir erstellen einen Auslöser mit dem Namen "EMP_TRIG" auf der Tabelle "Arbeit". Die Klausel nach dem Einfügen bedeutet, dass dieser Auslöser erst nach der Ausführung des Befehls Einfügen funktioniert. Für jede Zeile, die bei der Ausführung jedes Einfügungsbefehls bedeutet.

>> Erstellen Sie Trigger EMP_TRIG, nachdem Sie für jede Zeile ausgeführt werden. Procedure auditLogfunc ();

Es ist Zeit, einige Daten in die Tabelle „einsetzen“ einzufügen. Führen Sie den Befehl unten einfügen in der Shell aus.

>> in die Beschäftigung einfügen (ID, Name, Alter, Gehalt) Werte ('1', 'Paul', '34', '60000');

Schauen Sie sich den Tisch „anwenden“ an. Die Daten wurden erfolgreich mit dem Befehl Einfügen hinzugefügt.

Halten Sie jetzt einen Blick auf den "Audit" -Tisch. Sie können sehen, dass es auch aufgrund von Trigger „EMP_TRIG“ und Auditlogfunc () aktualisiert wird.

Befehl zum Update auslösen

Wir werden uns jetzt ein Beispiel eines Auslösers ansehen, das den Befehl update als Triggerereignis verwendet. Wir müssen erneut eine neue Prozedur mit dem unterschiedlichen Namen „Update“ erstellen, wie im Bild angegeben. Diese Prozedur fügt auch Datensätze in der Tabelle "Prüfung" beim Anruf ein.

Erstellen Sie nun einen neuen Trigger mit dem Namen "Update_EMP" mit dem Befehl create -Trigger erstellen. Dies funktioniert erst nach der Ausführung der Update -Abfrage in der Tabelle und nennt das Verfahren "Update".

Aktualisieren Sie die Tabelle "anwenden", indem Sie ihre ID auf "2" festlegen.

Holen Sie sich die Aufzeichnungen einer Tabelle „anwenden“, um die unten angegebenen Änderungen anzuzeigen.

Wie Sie auf der Tabelle „Audit“ sehen können, wurde sie neu organisiert, als die Tabelle „Beschäftigung“ aktualisiert wurde.

Auslösen beim Löschen des Befehls

Öffnen Sie Pgadmin 4 von Anwendungen zur Arbeit an GUI PostgreSQL. Unter dem Schema „Test“ entdecken Sie eine Liste von Tabellen. Erstellen Sie eine neue Tabelle „EMP“ und dieselbe "Audit" -Tabelle.

Dieses Mal werden wir den Befehl Trigger mit dem Befehl Löschen aufrufen. Unten finden Sie die Tabelle „EMP“ mit einigen Aufzeichnungen.

Hier ist die Prüfentabelle mit den beiden vorherigen Updates.

Erstellen Sie eine Prozedur mit dem Namen "Del ()", um das Einfügen in die Tabelle "Audit" auszulösen, indem Sie die Datensätze aus Tabelle "EMP" gelöscht.

Erstellen Sie einen Trigger "del_trig" mit der Abfrage erstellen Trigger erstellen. Dieser Auslöser führt die Prozedur "Del" aus, wenn eine Löschklausel auf der Tabelle "EMP" durchgeführt wird.

Lassen Sie uns einen Datensatz aus der Tabelle "EMP" löschen, in der der Mitarbeiter "ID" "5" ist. Es wird eine Zeile aus der Tabelle „EMP“ löschen.

Holen Sie sich die Aufzeichnungen von Tabelle „EMP“ und schauen Sie es sich an. Sie können ansehen, dass die Zeile entfernt wurde, wo die "ID" "5" war.

Extrahieren Sie nun die Tabellenaufzeichnungen "Audit" und Sie werden feststellen, dass sie aktualisiert wurde, da der Löschvorgang auf der Tabelle „EMP“ durchgeführt wurde.

Abschluss:

Wir haben fast jedes wesentliche Beispiel getan, um das Konzept des Triggers bei der Durchführung von Einsätzen, Aktualisierungen und Löschen von Operationen zu verstehen.