Einige Vorteile der Verwendung von Triggern
Syntax
Die Syntax des Erstellens eines Auslösers ist unten angegeben.
Erstellen [oder ersetzen] [Einschränkung] Trigger -Name vor | Nach | Anstelle von Ereignis [oder…]Voraussetzungen
A. Installieren Sie die Postgresql
Sie müssen die neueste Version von PostgreSQL -Paketen auf dem Linux -Betriebssystem installieren, bevor Sie die in diesem Tutorial gezeigten SQL -Anweisungen ausführen. Führen Sie die folgenden Befehle aus, um die Postgresql zu installieren und zu starten:
$ sudo apt-get -y install postgresql postgresql-contrib
$ sudo systemctl starten postgresql.Service
B. Führen Sie den folgenden Befehl aus, um sich bei PostgreSQL mit Root -Privilegien anzumelden.
$ sudo -u postgres psql
C. Sie können eine Datenbank namens erstellen “testdb ” Durch Ausführen der folgenden SQL -Anweisung.
# Datenbank testdb erstellen;Wenn Sie einen Tisch in die erstellen möchten testdb Datenbank, dann müssen Sie tippen "\C" Um die Datenbank zu ändern. In diesem Tutorial habe ich die Datenbank jedoch nicht geändert, und die Tabelle und alle Funktionen wurden in der Standarddatenbank erstellt, die benannt ist Postgres.
Erstellen Sie eine Tabelle mit dem Namen Lehrer Und Kurse Mit einigen Datensätzen, um die Verwendung von Triggern zu testen, die später in diesem Tutorial erstellt werden.
Tischlehrer erstellen (Beispiele auslösen
Jeder Auslöser ist einer Postgresql -Funktion zugeordnet. Sie müssen also die Funktion erstellen, bevor Sie den Abzug erstellen. In diesem Teil des Tutorials wurde die Art der Erstellung verschiedener Arten von Triggern gezeigt.
Beispiel 1: Erstellen Sie vor dem Einfügen von Trigger
Der Voreinsatz löst Brände vor, bevor die Einsatzbetrieb ausgeführt wird. Führen Sie die folgende SQL -Anweisung aus, um eine Funktion mit dem Namen zu erstellen vor_insert () das wird in a verwendet Vor dem Einfügen Abzug. Einer der Hauptzwecke für die Verwendung eines Triggers ist die Datenvalidierung. Die folgende Funktion prüft, ob die bestimmten Felder leer sind oder nicht. Wenn einer der Feldwerte leer bleibt, wird eine bestimmte Fehlermeldung erhoben. Eine andere Validierung wird auf die überprüft Name Feld, und eine Fehlermeldung wird erhöht, wenn die Länge dieses Feldes weniger als 5 beträgt. Die nächste bedingte Anweisung wird verwendet, um den String -Wert zu verkettet "+88" mit dem contact_no Wenn die Länge der contact_no Feld ist 11.
Funktion erstellen oder ersetzen Sie die Funktion vor_insert ()Die folgende Ausgabe wird angezeigt, wenn die Funktion erfolgreich in der erstellt wird Postgres Datenbank.
Führen Sie die folgende SQL -Anweisung aus, um einen Trigger mit dem Namen zu erstellen check_before_insert das wird die ausführen vor_insert () Funktionieren Sie, bevor Sie den neuen Datensatz in die einfügen Lehrer Tisch.
Erstellen Sie Trigger check_before_insertDie folgende Ausgabe wird angezeigt, wenn der Trigger erfolgreich erstellt wird.
Führen Sie die folgende Einfügeanweisung aus, die alle gültigen Daten enthält.
In Lehrer einfügen (Name, Adresse, contact_no)Die folgende Ausgabe wird angezeigt, wenn der neue Datensatz erfolgreich eingefügt wird.
Führen Sie die folgende Einfügeanweisung aus, die die ungültigen Daten für das Feld Name enthält.
In Lehrer einfügen (Name, Adresse, contact_no)Die folgende Fehlermeldung wird für den ungültigen Namenswert angezeigt.
Führen Sie die folgende Einfügeanweisung aus, die den leeren Wert für die enthält Adresse Und contact_no Felder und der leere Wert für diese Felder sind ungültig.
In Lehrer einfügen (Name, Adresse, contact_no)Die folgende Fehlermeldung wird für die leeren Werte angezeigt.
Führen Sie die folgende Auswahlanweisung aus, um zu überprüfen.
Wählen Sie * von Lehrern aus;Die folgende Ausgabe zeigt, dass nach Verwendung des Triggers nur ein Datensatz eingefügt wird.
Beispiel-2: Erstellen Sie nach dem Löschen des Triggers
Der Auslöser nach dem Löschen feuert nach dem Löschen eines Datensatzes aus der jeweiligen Tabelle. Führen Sie die folgende SQL -Anweisung aus, um eine Funktion mit dem Namen zu erstellen After_delete () das wird in einem verwendet Nach dem Löschen auslösen, um die zugehörigen Zeilen aus dem zu löschen Kurse Tabelle, wenn ein Datensatz aus dem gelöscht wird Lehrer' Tisch. Hier, an alt.Ausweis wurde verwendet, um die gelöschten Verfolgung zu verfolgen Ausweis von dem Lehrer' Tisch.
Funktion erstellen After_delete ()Die folgende Ausgabe wird angezeigt, wenn die Funktion erfolgreich in der erstellt wird Postgres Datenbank.
Führen Sie die folgende SQL -Anweisung aus, um einen Trigger mit dem Namen zu erstellen Delete_Teacher das wird die ausführen After_delete () Funktion nach dem Löschen eines Datensatzes aus dem Lehrer' Tabelle, die die Datensätze aus dem löscht Kurse Tisch, wo die lehrer_id Wert übereinstimmt mit dem gelöschten Ausweis Wert der Lehrer' Tisch.
Erstellen Sie Trigger Delete_TeacherDie folgende Ausgabe wird angezeigt, wenn der Trigger erfolgreich erstellt wird.
Führen Sie die folgende Löschanweisung aus, die den Datensatz aus der Tabelle der Lehrer löscht, in der die Ausweis Wert ist 1. Der Delete_Teacher Der Auslöser wird abgefeuert, wenn ein Datensatz aus dem gelöscht wird Lehrer' Tisch.
Löschen von Lehrern, wobei ID = 1;Die folgende Ausgabe zeigt, dass ein Datensatz aus der Tabelle der Lehrer gelöscht wurde. Also die Delete_Teacher Der Auslöser wird abgefeuert und alle Datensätze aus der Courses -Tabelle löschen, die enthält 1 im lehrer_id Feld.
Führen Sie nun die folgenden Auswahlbefehle aus, um zu überprüfen, welche Datensätze aus dem gelöscht werden Lehrer Und Kurse Tische.
Wählen Sie * von Lehrern aus;Die Ausgabe zeigt, dass ein Datensatz aus der Tabelle der Lehrer gelöscht wurde, und zwei Datensätze wurden mit dem Trigger aus der Courses -Tabelle gelöscht.
Beispiel-3: Erstellen anstelle des Aktualisierungsauslösers
Der Auslöser anstelle von Aktualisierungen kann nur auf die Tabellenansichten angewendet werden. Sie müssen also eine Ansicht der Tabelle und eine Funktion erstellen, um die Verwendung dieser Art von Trigger zu testen. Führen Sie die folgende SQL -Anweisung aus, um eine Funktion mit dem Namen zu erstellen insert_course () Das wird die Werte der aktualisierten Lehrer und das Kurse Tabelle nach dem Einfügen eines neuen Datensatzes in die Kurse Tisch. Der Zweck dieser Funktion ist es, einen Lehrer für den neuen Kurs zuzuweisen, wenn der Lehrer verfügbar ist.
Funktion erstellen oder ersetzen Funktion Insert_course ()Die folgende Ausgabe wird angezeigt, wenn die Funktion erfolgreich in der erstellt wird Postgres Datenbank.
Führen Sie den folgenden SQL -Befehl aus, um eine Ansicht der Kurstabelle zu erstellen.
Erstellen Sie Ansicht cures_view alsDie folgende Ausgabe wird angezeigt, wenn die Ansicht erfolgreich erstellt wird.
Führen Sie nun die folgende SQL Daten aktualisieren Das wird abgefeuert, wenn ein neuer Datensatz mit der Verwendung der Verwendung der Verwendung eingefügt wird create_view Sicht.
Erstellen Sie Trigger update_dataDie folgende Ausgabe wird angezeigt, wenn der Trigger erfolgreich erstellt wird.
Führen Sie die folgende Einfügungsanweisung aus, um einen neuen Datensatz in die Courses -Tabelle einzulegen, indem Sie verwenden cours_view Sicht.
In cours_view (Name, Credit_Hour) einfügen)Die folgende Ausgabe wird angezeigt, wenn die Daten erfolgreich mit der Ansicht eingefügt werden.
Führen Sie nun die folgenden ausgewählten Aussagen aus, um zu überprüfen.
Wählen Sie * von Lehrern aus;Die folgende Ausgabe zeigt, dass ein neuer Datensatz in die Courses -Tabelle und das verfügbare Feld der Lehrer' Die Tabelle wurde von "T" nach "F" aktualisiert, wobei der ID -Wert 3 beträgt, und dieser ID -Wert wurde in der aktualisiert Kurse Tabelle, um diesen Lehrer für den neu eingefügten Kurs zuzuweisen.
Abschluss
Viele Datenbankaufgaben können automatisch mit einem Auslöser in der PostgreSQL -Datenbank erfolgen. Jeder Auslöser wird durch Verwendung einer bestimmten Funktion ausgeführt. In diesem Tutorial wurden viele Zwecke für die Verwendung von Triggern erläutert, indem mehrere Trigger mit der Funktion erstellt werden. Hier wurden drei verschiedene Arten von Triggern erstellt, die den neuen PostgreSQL -Benutzern helfen, die Art des Erstellens und Verwendens von Triggern in der PostgreSQL -Datenbank zu erstellen und zu verwenden.