Ein Auslöser ist eine Prozedur, die automatisch abgefeuert wird, wenn eine Änderung an einer Datenbanktabelle vorgenommen wird. Es gibt keine Möglichkeit, einen Auslöser manuell anzurufen oder auszuführen. Der Hauptzweck bei der Verwendung von Triggern besteht darin, die Datenbankintegrität aufrechtzuerhalten und mit den Referenzintegritätsbeschränkungen verwendet werden kann, die Integritätsregeln erzwingen. In einem DBMS wird ein Einfügen, Aktualisieren und Löschen von Ereignissen auftritt, und dann wird die mit der betriebene Tabelle automatisch ausgeführt und die erforderlichen Aktionen durchgeführt. Verschiedene Arten von Triggern werden von der Datenbank unterstützt. Auslöser werden hauptsächlich auf zwei Arten kategorisiert. Einer ist vor Trigger und ein anderer ist nach Abzug. Bevor Trigger aufgerufen werden, bevor ein Ereignis in der Tabelle ausgeführt wird und nach Auslöser nach Ausführung eines Ereignisses in der Tabelle aufgerufen wird. Wie Sie MariADB installieren und verschiedene Arten von Triggern auf dem MariADB -Datenbankserver auf Ubuntu anwenden, wird in diesem Tutorial angezeigt.
Mariadb -Installation:
Führen Sie den folgenden Befehl aus, um das System zu aktualisieren, und installieren Sie MariADB Server und Client.
# sudo APT-Get Update && sudo apt-Get Installieren Sie Mariadb-Server Mariadb-Client
Typ 'y ' und drücken Sie die Eingabetaste, um den Installationsprozess abzuschließen.
Führen Sie den folgenden Befehl aus, um den Mariadb -Server zu starten.
# sudo systemctl starten mariadb
Überprüfen Sie, ob der Server ordnungsgemäß funktioniert oder nicht. Die Ausgabe des folgenden Befehls zeigt den Detailstatus des Servers an. Der Ausgang zeigt das an Mariadb 10.1.30 Verion läuft.
# sudo systemctl status mariadb
Führen Sie den folgenden Befehl aus, wenn Sie den Server stoppen möchten. Führen Sie diesen Befehl jetzt nicht aus.
# sudo systemctl stoppen mariadb
Richten Sie die Datenbank und Tabellen ein
Sie müssen eine Datenbank und zwei oder mehr Tabellen erstellen, um zu überprüfen, wie Auslöser funktionieren. Führen Sie zunächst den MySQL -Client aus, um die Datenbank einzurichten. Es wird um Root -Passwort aufgefordert, auf den Datenbankserver zuzugreifen.
# sudo mysql -u root
Erstellen Sie eine Datenbank mit dem Namen speichern.
> Datenbankspeicher erstellen;Wählen Sie diese neue Datenbank aus:
> Store verwenden;Erstellen Sie drei Tabellen in speichern Datenbank, um Triggeraktionen auf diese anzuwenden. Hier, Produkte, Stock und Stock_ADD Tabellen werden erstellt.
Tischprodukte erstellenFügen Sie nun einige Daten in diese drei Tabellen ein.
Nach Trigger erstellen
Sie können nach dem Auslöser erstellen, um eine Aktion automatisch auszuführen, nachdem Sie Datensätze einer bestimmten Tabelle eingefügt oder aktualisiert oder gelöscht haben. Hier, Produkte Und Aktien Tabellen werden ausgewählt, um nach dem Löschen von Trigger zu erstellen. Die Daten der Bestandtabelle hängen von den Daten der Produkttabelle ab. Wenn also eine Aufzeichnung aus der Produkttabelle entfernt wird, müssen die zugehörigen Aufzeichnungen der Bestandtabelle entfernt werden. Erstellen Sie die folgende Auslöser -Prozedur zum Löschen einer zugehörigen Datensatzdatensatz aus der Bestandtabelle, wenn ein Datensatz aus der Produkttabelle entfernt wird. In diesem Auslöser wird die gelöschte ID von erkannt alt.Ausweis.
Abgrenzer //
Nach dem Auslöser wurde für die Produkttabelle erstellt. Jetzt müssen Sie testen, dass der Trigger ordnungsgemäß funktioniert oder nicht. Führen Sie die folgende Anfrage aus, um einen Datensatz aus Produkten zu entfernen, wo Ausweis Ist 101 und überprüfen Sie die Daten von Produkten und Aktientabellen. Nach der Ausführung der Abfrage finden Sie, dass der damit verbundene Datensatz der Bestandtabelle nach dem Auslöser entfernt wird. In beiden Tabellen findet sich kein Datensatz für den ID -Wert, 101, in beiden Tabellen.
Erstellen Sie vor Triggern
Vor dem Auslöser wird vor dem Einfügen oder Aktualisieren oder Löschen von Datensätzen aus einer bestimmten Tabelle Maßnahmen ergriffen. Hier, Aktien Und stocks_add Die Tabelle wird verwendet, um vor dem Trigger zu erstellen. Der Wert von Current_Stock of Stocks -Tabelle hängt vom Mengenwert der Tabelle stocks_add ab. Wenn Sie einen Mengenwert der Tabelle stocks_add aktualisieren, muss aktuell die Tabelle der Aktien aktualisiert werden. Wenn also ein vorhandener Mengenwert der Tabelle stocks_add abnimmt. Erstellen Sie vor dem Update -Trigger für die Tabelle stocks_add. In diesem Auslöser wird der Wert der geänderten Menge berechnet, indem die alte Menge von der neuen Menge subtrahiert.
Abgrenzer //Überprüfen Sie vor der Aktualisierung die aktuellen Werte sowohl der Aktien- als auch der Stocks_add -Tabellen.
> Auswahl * aus Aktien;
Nehmen wir an, Sie müssen den Mengenwert der Tabelle stocks_add anwheren aktualisieren Produkt ID Ist 103 Und Beitrittsdatum Ist 2018-01-01 welches ist 30 Jetzt. Wenn Sie den Wert nach aktualisieren möchten 75 Führen Sie dann die folgende Update -Abfrage aus und überprüfen Sie beide Tabellen erneut. Die erhöhte Menge beträgt 75-30 = 45. Nach dem Update wird der Trigger abgefeuert und Current_Stock der Aktientabelle wird als 300+45 = 345 festgelegt.
Die Verwendung von zwei Arten von Triggern wird in diesem Tutorial angezeigt. In ähnlicher Weise können Sie andere Arten von vor und nach Trigger für Ihre Datenbanktabellen basierend auf Ihren Anforderungen erstellen.