PhpMyAdmin – Funktionen und Trigger

Die Funktionen sind den gespeicherten Prozeduren (Stored Procedures, SP) sehr ähnlich, der Unterschied liegt in einigen Details, der wichtigsten, die nur einen Wert zurückgeben, wenn ein SP mehr als einen zurückgeben kann. Außerdem benötigen wir keine Variable, um den Wert zu speichern, der daraus resultiert Das ist viel einfacher in einem SELECT zu verwenden.

Eine Funktion erstellen
Der Zweck einer Funktion besteht darin, die Logik hinter bestimmten Elementen zu isolieren, damit sie einfacher zu verwenden sind. Auf diese Weise können wir die Datenbank und ihren Betrieb dokumentieren und die Aktion der Anwendung vereinfachen, die mit der Basis kommunizieren könnte von Daten. Um eine Funktion zu erstellen, verwenden wir die folgenden Elemente:

  • Das Abfragefeld , in das wir die Funktion schreiben können.
  • Die Änderung des Trennzeichens.
  • Der Bearbeitungs- und Manipulationsmechanismus der Funktion.

Sehen wir uns an, wie Sie eine Funktion anhand eines Beispiels definieren:

 CREATE FUNCTION get_country_name (param_country_code CHAR (2)) RÜCKGABE VARCHAR (50) Liest SQL-Daten BEGINNEN DECLARE var_country_name VARCHAR (50) DEFAULT 'not found'; Beschreibung auswählen AUS dem Land WHERE code = param_country_code INTO var_country_name; RETURN var_country_name; ENDE // 

Wie wir sehen, ist die Syntax der des SP sehr ähnlich, nur dass wir hier nicht die Werte von IN und OUT definieren, sondern die Parameter, die einen einzelnen Wert eingeben und deklarieren, der die RETURN sein wird .
Wenn wir zum Abschnitt Routinen auf der Strukturseite in der Datenbank gehen, sehen wir, dass sich dies wie folgt widerspiegelt:

Functions-triggers.jpg

Nachdem wir unsere Funktion erstellt haben, sehen wir uns an, wie wir sie testen können. Mit dieser Funktion testen wir, was sie bewirkt, indem wir eine Ländertabelle abfragen und den Namen eines Landes zurückgeben, wenn wir nach einem Code fragen. Wenn wir ihn nicht finden, finden wir keinen zurück :

 SELECT CONCAT ('ca->', get_country_name ('ca'), ', zz->', get_country_name ('zz')) als Test; 

Wir treffen einfach eine Auswahl mit einem CONCAT, um die Ergebnisse in einer Kette zusammenzufassen, und wir erhalten Folgendes:

 ca-> Kanada, zz-> nicht gefunden 

Wie wir sehen, ist es viel einfacher als die Abfrage zu erstellen, die jedes Land separat konsultiert.

See also  Anzeigen von Linux-Dateisystemen, Festplatten oder Partitionen

Auslöser
Die Trigger unterscheiden sich von den Funktionen und den gespeicherten Prozeduren . Sie müssen nicht vom Benutzer aufgerufen werden. Sie treten auf, wenn eine Aktion für die Tabelle ausgeführt wird, mit der sie verknüpft sind. Dies bringt uns zum anderen Unterschied der Funktionen ist, dass sie allgemein sind; die Trigger, wenn sie mit einer bestimmten Tabelle verknüpft sind.
Mal sehen, wie man einen Trigger erstellt :

 CREATE TRIGGER after_book_insert AFTER INSERT ON book FÜR JEDE REIHE BEGINNEN UPDATE-Autor SET total_page_count = total_page_count + NEW.page_count WHERE id = NEW.author_id; ENDE // 

Wie wir sehen, müssen wir auch ein neues Trennzeichen // im Abfragefeld definieren, damit wir alle Anweisungen des Triggers aufnehmen können. Im Beispiel verknüpfen wir es mit dem After Insert , dh nach dem Einfügen, und führen dann die definierte Aktion aus Auf diese Weise kann die Datenbank Aktionen bei deren Ausführung autonom verwalten.

Sobald der Trigger erstellt wurde, sehen wir, dass er auf der Strukturseite der Tabelle verfügbar ist:

Functions-triggers_2.jpg

administrator

Leave a Reply

Your email address will not be published. Required fields are marked *