Heim > Datenbank > MySQL-Tutorial > Hauptteil

So passen Sie Funktionen und Trigger in MySQL an

王林
Freigeben: 2023-06-01 12:13:31
nach vorne
1503 Leute haben es durchsucht

1. Gespeicherte Funktionen (benutzerdefinierte Funktionen)

  • Benutzerdefinierte Funktionen sind eine Möglichkeit, MySQL zu erweitern, und ihre Verwendung ist die gleiche wie die der integrierten Funktionen.

  • Zwei notwendige Bedingungen zum Definieren einer Funktion: Parameter und Rückgabewert. Funktionen können Werte beliebigen Typs zurückgeben und auch Parameter dieser Typen empfangen.

Über den Funktionskörper:

  • Der Funktionskörper besteht aus zulässigen SQL-Anweisungen.

  • Der Funktionskörper kann eine einfache SELECT- oder INSERT-Anweisung sein.

  • Wenn der Funktionskörper eine konforme Struktur ist, verwenden Sie die BEGIN....AND-Anweisung, um ihn zu umschließen.

  • Verbundstrukturen können Deklarationen, Schleifen, Kontrollstrukturen usw. enthalten.

Wichtig: Benutzerdefinierte Funktionen dürfen nicht denselben Namen haben, genau wie beim Definieren einer globalen Variablen können die Variablennamen nicht konsistent sein.

1.1 Definieren Sie eine gespeicherte Funktion

Grammatikformat:

create function 函数名(参数列表)
returns type(返回值类型)
begin
    --SQL语句
end;
Nach dem Login kopieren

Anforderungen: Definieren Sie eine gespeicherte Prozedurfunktion, um die Gesamtzahl der Datensätze zu erhalten, die die Bedingungen erfüllen Rufen Sie an gespeicherte Funktion

Syntaxformat:

delimiter $
create function fun(countryId int)
returns int 
begin
    # 定义一个存储总数据条数的变量
    declare cum int default 0;
    # 查询等于传递参数的全部的数据数,然后将其赋值给定义的变量
    select count(*) into cum from city where country_id = countryId;
    # 返回结果值。存储函数必须有返回值
    return cum;
end $

delimiter ;
Nach dem Login kopieren

Hinweis: Beim Aufrufen einer gespeicherten Prozedur wird das Schlüsselwort call verwendet. Wenn Sie jedoch eine gespeicherte Funktion aufrufen, verwenden Sie einfach select direkt, genau wie beim Aufrufen einer gewöhnlichen Aggregatfunktion in MySQL . 1.3 Gespeicherte Funktion löschen

, den im Trigger definierten SQL-Satz auslösen und ausführen. Diese Funktion von Triggern kann Anwendungen dabei helfen, Datenintegrität, Protokollierung und Datenüberprüfung auf der Datenbankseite sicherzustellen.

Trigger können nur beim Hinzufügen, Löschen oder Ändern verwendet werden, nicht jedoch beim Abfragen.

Verwenden Sie in Triggern die Aliase OLD und NEW, um auf die geänderten Teile des Datensatzes zu verweisen, ähnlich wie bei anderen Datenbanken. MySQL-Trigger unterstützen nur das Triggern auf Zeilenebene und nicht das Triggern auf Anweisungsebene. Oracle unterstützt Trigger sowohl auf Zeilenebene als auch auf Anweisungsebene.

OLD und NEW werden auch Zeilendatensatzvariablen genannt.

Sie können diese beiden Variablen verwenden, um die Daten in der zu bedienenden Datentabelle abzurufen.

  • 2.2 Trigger erstellen

  • Grammatikformat:
  • select 函数名(参数列表);
    Nach dem Login kopieren

  • Anforderungen: Zeichnen Sie das Datenänderungsprotokoll emp_logs der emp-Tabelle über Trigger auf, einschließlich Hinzufügen, Ändern und Löschen
  • Umsetzung :
  • Analyse:

    Ein Trigger kann nur eine Art von Datenoperation ausführen und die Vorgänge des Hinzufügens, Änderns und Löschens nicht gleichzeitig abschließen. Daher müssen zu diesem Zeitpunkt mehrere Trigger definiert werden, um diese Protokollierungsaufgabe abzuschließen.

Da MySQL ein Auslöser für Operationen auf Zeilenebene ist, speichern neue und alte eine ganze Datenzeile. So passen Sie Funktionen und Trigger in MySQL an

Erstellen Sie einen Trigger zum Ausführen des Einfügens:

Verwenden Sie im Einfügemodus das Schlüsselwort new, um die einzufügenden Daten abzurufen.

Verwenden Sie after, nachdem Sie die Tabelle After emp ausgeführt haben hinzugefügt wird, wird dieser Trigger ausgeführt, um das Protokoll aufzuzeichnen.

Die Ausführung dieses Triggers hängt mit zwei Punkten zusammen:

So passen Sie Funktionen und Trigger in MySQL an

Die Tabelle, die bedient werden muss, ist die emp-Tabelle, die nach on deklariert wird.
  • Der Einfügevorgang, der ausgeführt werden muss.

  • Erstellen Sie einen Trigger zum Ausführen der Aktualisierung:

  • Zu diesem Zeitpunkt speichert die alte Variable die Daten vor der Änderung und die neue Variable speichert die Daten nach der Änderung.

    • Auslöser für die Ausführung und Löschung erstellen :

    • Die zu löschenden Daten werden zu diesem Zeitpunkt in der alten Variablen gespeichert.

Test: Der Test muss die emp-Tabelle der Operation sein, damit der oben definierte Trigger ausgelöst wird.

So passen Sie Funktionen und Trigger in MySQL an

2.3 Trigger löschen

Syntaxstruktur:

select fun(1);
# 这里和存储过程一样,调用的时候需要加小括号和参数,但是在删除的时候指定函数名即可
Nach dem Login kopieren

Wenn schema_name (Datenbankname) nicht angegeben ist, wird standardmäßig die aktuelle Datenbank verwendet.

So passen Sie Funktionen und Trigger in MySQL an

2.4 Trigger anzeigen

Sie können den Status, die Syntax und andere Informationen von Triggern anzeigen, indem Sie den Befehl „show triggers“ ausführen.

Grammatikstruktur:

drop [if exists] function fun;
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonSo passen Sie Funktionen und Trigger in MySQL an. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:yisu.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!