PostgreSQL

PostgreSQL Trigger erstellen nach INSERT/UPDATE/DELETE

PostgreSQL Trigger erstellen nach INSERT/UPDATE/DELETE
Immer wenn eine definierte Änderungsaktion (SQL INSERT-, UPDATE-, DELETE- oder TRUNCATE-Deklaration) für eine definierte Tabelle ausgeführt wird, ist ein Trigger eine Reihe von Ereignissen, die automatisch ausgeführt werden. Trigger können verwendet werden, um Geschäftsregeln festzulegen, Eingabeinformationen zu authentifizieren und einen Audit-Trail zu pflegen. SQL-Trigger werden nach dem SQL-Format implementiert. Es enthält Strukturen, die in mehreren Programmiersprachen verwendet werden, mit denen Sie lokale Variablen deklarieren, den Prozessfluss mit Deklarationen überwachen, Anweisungsergebnisse Variablen zuweisen und Fehler behandeln können. Sobald Sie einen Trigger für etwas wie eine Tabelle erstellt haben, wird der Trigger sofort entfernt, sobald die Tabelle entfernt wird. Wir werden uns ansehen, wie PostgreSQL-Trigger in diesem Segment funktionieren.

Syntax:

Das Folgende ist die einfache Syntax zum Generieren eines Triggers:

>> CREATE TRIGGER trigger_name [BEFORE|AFTER|ANSTEAD OF] event-name ON table_name [ ----Trigger Logic ];

Hier ist die Erklärung der obigen allgemeinen Abfrage.

Um das Triggerkonzept kurz zu verstehen, starten Sie die PostgreSQL-Shell aus den Anwendungen. Wechseln Sie den Server, wenn Sie auf einem anderen Server arbeiten möchten, oder drücken Sie die Eingabetaste auf Ihrer Tastatur. Fügen Sie den Datenbanknamen hinzu, an dem Sie arbeiten möchten, andernfalls lassen Sie ihn so, wie er ist, und tippen Sie auf Enter. Wie Sie sehen, arbeiten wir derzeit standardmäßig an Port 5432; du kannst es auch ändern. Geben Sie danach einen anderen Benutzernamen als Postgres ein, wenn Sie mit einem anderen Benutzer arbeiten möchten, oder lassen Sie es leer und drücken Sie die Eingabetaste. Jetzt ist Ihre Befehlsshell einsatzbereit.

TRIGGER bei INSERT-Befehl

Schauen wir uns das Beispiel eines Triggers an, wenn der INSERT-Befehl als Triggerereignis verwendet wurde. Dazu müssen wir zwei neue Tabellen erstellen, z.G., „beschäftigen“ und „prüfen“. Die Tabelle „beschäftigen“ enthält die Personalakten der Mitarbeiter eines bestimmten Unternehmens und die Tabelle „Audit“ enthält die Informationen darüber, wann die Mitarbeiter in das Unternehmen eingetreten sind. Die Abfragen zum Erstellen der Tabellen sind unten angegeben.

>> CREATE TABLE beschäftigen( ID INTEGER NOT NULL PRIMARY KEY, Name VARCHAR(100) NOT NULL, Alter VARCHAR(100) NOT NULL, Gehalt VARCHAR(100) NOT NULL );

>> CREATE TABLE audit( empid INTEGER NOT NULL, entry_date VARCHAR(100) NOT NULL );

Sie müssen eine Prozedur erstellen, die automatisch ausgeführt wird oder funktioniert, wenn der Trigger aufgerufen wird. Es wird im nächsten CREATE TRIGGER-Befehl verwendet. Aus dem folgenden Befehl können Sie sich vorstellen, dass wir eine Prozedur „auditlogfunc()“ erstellt haben, die einen Trigger als Variable „$examp_table$“ zurückgibt. Die Funktion beginnt mit der BEGIN-Klausel, gefolgt von der INSERT-Anweisung. Diese INSERT-Anweisung fügt die automatische ID und das aktuelle Zeit-Datum mithilfe der integrierten Funktion in die Tabelle „Audit“ ein und gibt dieses Ergebnis an TRIGGER zurück.

Es ist an der Zeit, einen TRIGGER mit dem Befehl CREATE TRIGGER zu generieren. Wir erstellen einen Trigger namens „emp_trig“ in der Tabelle „employ“. Die Klausel AFTER INSERT ON bedeutet, dass dieser Trigger erst nach der Ausführung des Einfügebefehls funktioniert. FOR EACH ROW bedeutet, dass bei der Ausführung jedes INSERT-Befehls dieser Trigger die kurz zuvor erstellte Prozedur „auditlogfunc()“ aufruft und ausführt.

>> CREATE TRIGGER emp_trig AFTER INSERT ON apply FOR JED ROW EXECUTE PROCEDURE auditlogfunc();

Es ist Zeit, einige Daten in die Tabelle „employ“ einzufügen. Führen Sie den folgenden INSERT-Befehl in der Shell aus.

>> EINFÜGEN IN BESTELLWERTE (ID, Name, Alter, Gehalt) ('1', 'Paul', '34', '60000');

Schauen Sie sich die Tabelle „beschäftigen“ an. Die Daten wurden erfolgreich mit dem INSERT-Befehl hinzugefügt.

Werfen Sie jetzt einen Blick in die Tabelle „Audit“. Sie sehen, es wird auch aufgrund von Trigger „emp_trig“ und auditlogfunc() aktualisiert.

TRIGGER beim UPDATE-Befehl

Wir sehen uns nun ein Beispiel für einen Trigger an, der den UPDATE-Befehl als Triggerereignis verwendet. Wir müssen wieder eine neue Prozedur mit dem anderen Namen „update“ erstellen, wie im Bild dargestellt. Dieses Verfahren fügt beim Anruf auch Datensätze in die 'Audit'-Tabelle ein.

Erstellen Sie nun mit dem Befehl CREATE TRIGGER einen neuen Trigger namens „update_emp“. Dies funktioniert erst nach der Ausführung der UPDATE-Abfrage für die Tabelle engage und ruft die Prozedur "update" auf.

Aktualisieren Sie die Tabelle „employ“, indem Sie ihre ID auf „2“ setzen.

Rufen Sie die Datensätze einer Tabelle „employ“ ab, um die Änderungen wie unten angehängt anzuzeigen.

Wie Sie an der Tabelle „Audit“ sehen können, wurde diese neu organisiert, da die Tabelle „Beschäftigen“ aktualisiert wurde.

TRIGGER beim DELETE-Befehl

Öffnen Sie pgAdmin 4 von Anwendungen aus, um mit GUI PostgreSQL zu arbeiten. Unter dem Schema „test“ finden Sie eine Liste von Tabellen. Erstellen Sie eine neue Tabelle „emp“ und dieselbe „Audit“-Tabelle.

Diesmal werden wir den Triggerbefehl mit dem DELETE-Befehl aufrufen. Unten ist die Tabelle „emp“ mit einigen Datensätzen.

Hier ist die Audit-Tabelle mit den letzten beiden Updates.

Erstellen Sie eine Prozedur namens „Del()“, um das Einfügen in die Tabelle „Audit“ beim Löschen der Datensätze aus der Tabelle „emp“ auszulösen.

Erstellen Sie einen Trigger „del_trig“ mit der CREATE TRIGGER-Abfrage. Dieser Trigger führt die Prozedur „Del“ aus, wenn eine DELETE-Klausel für die Tabelle „emp“ ausgeführt wird.

Lassen Sie uns einen Datensatz aus der Tabelle „emp“ löschen, in der die „ID“ des Mitarbeiters „5“ ist. Es löscht eine Zeile aus der Tabelle „emp“.

Holen Sie sich die Datensätze der Tabelle „emp“ und sehen Sie sich diese an. Sie können sehen, dass die Zeile entfernt wurde, bei der die "ID" "5" war.

Extrahieren Sie nun die Datensätze der Tabelle „audit“ und Sie werden feststellen, dass sie aktualisiert wurde, da die DELETE-Operation für die Tabelle „emp“ ausgeführt wurde.

Fazit:

Wir haben fast jedes wesentliche Beispiel gemacht, um das Konzept von TRIGGER beim Ausführen von INSERT-, UPDATE- und DELETE-Operationen zu verstehen.

Steuern und verwalten Sie Mausbewegungen zwischen mehreren Monitoren in Windows 10
Dual-Display-Maus-Manager lässt Sie die Mausbewegung zwischen mehreren Monitoren steuern und konfigurieren, indem Sie ihre Bewegungen in der Nähe der ...
Mit WinMouse können Sie die Mauszeigerbewegung auf einem Windows-PC anpassen und verbessern improve
Wenn Sie die Standardfunktionen Ihres Mauszeigers verbessern möchten, verwenden Sie Freeware WinMouse. Es fügt weitere Funktionen hinzu, damit Sie das...
Linker Mausklick funktioniert nicht unter Windows 10
Wenn Sie eine dedizierte Maus mit Ihrem Laptop oder Desktop-Computer verwenden, aber die linker Mausklick funktioniert nicht unter Windows 10/8/7 aus ...