SQLite -Auslöser

SQLite -Auslöser
Die Reaktion wird immer durch eine Aktion ausgelöst, die von einer Person oder einer Sache ausgeführt wird. SQLite Trigger sind Datenbankantwortmethoden, die automatisch ausgeführt/aufgerufen werden, wenn ein bestimmter Datenbankvorfall auftritt. Wenn Sie also bestimmte Abfragen in der Datenbank ausführen, besteht die Möglichkeit, dass eine bestimmte Auslöserabfrage als Reaktion ausgeführt werden kann.

Daher haben wir beschlossen, das Thema SQLite -Trigger in Ubuntu 20 zu behandeln.04 Beim Verwenden der SQLite C-Bibliothek der SQL-Datenbank. Beginnen wir mit der Öffnung eines Terminals von Ubuntu 20.04. Es muss mit dem Strg+Alt+T begonnen werden, da wir den größten Teil unserer Arbeit darin erledigen müssen. Innerhalb des Shell-Terminals müssen Sie die Aktualisierungs- und Aktualisierungsanweisungen in Kombination mit dem APT-Paket ausprobieren, um Ihr System auf dem neuesten Stand zu machen, fehlerfrei und seine Pakete zu aktualisieren.

Sie können auf die folgende Ausgabe am Ende des Update- und Upgrade -Prozesses stoßen. Lassen Sie uns in Richtung der SQLite -Datenbank voranschreiten.

Beginnen wir den SQLite C-Package einer Datenbank in unserer Shell von Ubuntu 20.04 Mit Hilfe des Schlüsselworts "SQLite3". Die Befehlsschale für SQLite wird wie unten gezeigt auf Ihrem Bildschirm generiert.

Die Auslöser werden immer als Antwort auf einige Abfragen in einer Datenbank erstellt, und die Abfragen werden auf die Tabellen angewendet. Wir haben momentan keine Tabelle in unserer Datenbank. Wir müssen also neue Tische erstellen. Um Trigger anzuwenden, benötigen wir mindestens 2 Tische. Daher haben wir einen neuen Tabellenstudenten mit 5 Spalten erstellt (i.e., Sid, Name, RNO, Marks und Status.) Die Spalte der Namen und der Status ist vom Texttyp, während die Reste der Spalten von int oder real sind.

Danach haben wir neue Tabellendaten mit drei Spalten erstellt: ID, Status und Aufzeichnung. Diese Tabelle wird zum Zeitpunkt des Aufrufens von Triggern verwendet. Wir haben die Auswahl der Anweisung ausprobiert, die dem Zeichen „*“ folgt, um die Datensätze beider neu erstellten Tabellen abzurufen (i.e., Schüler und Daten.) Die Abfrage für beide Tabellen zeigt, dass die Tabellen leer sind.

Tabellenstudent erstellen (SID Int Primary Key Not NULL, Nennen Sie Text nicht NULL, RNO INT NICHT NULL,
Marks real nicht null, Statustext nicht null);
Tabellendaten erstellen (ID int nicht null, Statustext nicht NULL, Datensatztext);
Aus dem Schüler auswählen;
Aus Daten auswählen;

Fügen wir einige Datensätze in die Schülertabelle ein und prüfen Sie, ob das Einfügen der Datensätze in dieser Tabelle die andere Tabelle "Daten" beeinflussen kann oder nicht. Daher haben wir den Einfügen in die Anweisung versucht, insgesamt 5 Datensätze in allen 5 Spalten einer Tabelle hinzuzufügen (i.e., ID, Name, RNO, Marks und Status.) Nachdem wir die 5 Datensätze erfolgreich eingefügt haben, haben wir die ausgewählte Anweisung ausprobiert, gefolgt von dem Asterisk -Zeichen "*", um alle Datensätze einer Tabelle "Student" anzuzeigen. Die Ausführung dieses Befehls hat die 5 Datensätze in unserem Shell -Bildschirm der SQLite -Datenbank vorgestellt.

Danach müssen wir die Datentabelle überprüfen, wenn sie betroffen ist oder nicht. Wir haben also auch die Auswahl der Anweisung mit dem Zeichen „*“ für die Datentabelle ausprobiert. Wir haben festgestellt, dass die Tabelle noch leer ist und die Einführung von Daten in der Schülertabelle die Tabelle „Daten“ noch nicht beeinflusst. Lassen Sie uns in Richtung der Erschaffung eines Abzugs voranschreiten.

In die Schüler (ID, Name, RNO, Marks, Status) Werte einfügen (1, "Tim", 344, 45, "Pass"),
(2, "ema", 355, 98, "Pass"), (3, "Julia", 349, 22, "Fail"), (4, "John", 335, 47, "Pass"),
(5, "Paul", 250, 25, "Fail");
Aus dem Schüler auswählen;
Aus Daten auswählen;

Wir werden also einen neuen Auslöser erstellen, damit die Einfügung von Datensätzen in einer Tabelle die andere beeinflusst. Daher erstellen wir einen Einfügungsauslöser in der Schülertabelle, sodass die Verwendung der Anweisung des Triggers erstellen auf der SQLite -Shell den Namen eines zu erstellenden Namens folgt (i.e., "Ich log das log").

Nach dem Namen eines Auslöser.e., Einfügen, löschen, aktualisieren usw..e., auf dem Studententisch.) Die Auslöserbedingung beginnt mit dem „Beginnen“ und bleibt mit dem Schlüsselwort „Ende“ stehen.

In diesen beiden Schlüsselwörtern werden wir unsere Auslöser -Anweisung schreiben, die nach der Ausführung einer bestimmten Einfügungsabfrage aufgerufen wird. Der Auslöser enthält eine Insert -Abfrage, um den Eintrag in der Datentabelle bei der Ausführung der Einfügungsanweisung für die Schülertabelle hinzuzufügen. Die Spalte "Rid" und "Status" der Datentabelle verwendet die Werte aus der Schülertabelle gemäß dem Schlüsselwort "neu", gefolgt von den Spaltennamen einer Schülertabelle (i.e. neu.Id, neu.STATUS.) Der Spaltendatensatz der Datentabelle wird mit dem angezeigten Wert „Eingefügt“ zugewiesen.

Erstellen Sie Trigger i_log nach dem Einfügen auf den Schüler
START
In Daten einfügen (RID, Status, Datensatz) Werte (neu.Id, neu.Status, "Datensatz eingefügt");
ENDE;

Der Auslöser "i_log" wurde erfolgreich in der SQLite -Datenbank erstellt und ist für die Verwendung bereit. Wir werden einige Aufzeichnungen innerhalb der Schülertabelle einfügen, damit der Abzug bei der Verwendung des Einsatzes in die Anweisung automatisch ausgeführt wird. Nach der Ausführung des Einführungsbefehls haben wir die Auswahlabfrage ausprobiert, um die Aufzeichnungen der Schülertabelle anzuzeigen. Bei diesen Tabellen wurden beide neuen Datensätze hinzugefügt. Danach haben wir versucht, die Datensätze einer Datentabelle mit dem Anweisungen auszuwählen. Dieses Mal zeigt die Datentabelle auch 2 Einträge, die vom automatischen Trigger „I_Log“ in der Abfrage für die Studententabelle hinzugefügt werden.

Einfügen in den Schüler (ID, Name, RNO, Marks, Status) Werte (6, "Bryan", 256, 78, "Pass"),
(7, "Taylor", 441, 64, "Pass");
Aus dem Schüler auswählen;
Aus Daten auswählen;

Abschluss:

Dies war mit der Verwendung von Triggern zur Ausführung einer bestimmten Abfrage bei der Ausführung einer anderen Abfrage in der SQLite -Datenbank durchgeführt. Wir haben den Anweisungsauslöser in diesem Artikel durchgeführt. Alle Schritte werden deutlich beschrieben.