Heim  >  Artikel  >  Datenbank  >  Ausführliche Erklärung der Trigger in der MySQL-Lernzusammenfassung

Ausführliche Erklärung der Trigger in der MySQL-Lernzusammenfassung

WBOY
WBOYnach vorne
2022-03-14 17:19:242441Durchsuche

Dieser Artikel bringt Ihnen relevantes Wissen über MySQL, das hauptsächlich verwandte Themen zu Triggern einführt. Trigger und gespeicherte Prozeduren sind beide in der Lage, bestimmte Funktionen und Speicher zu erfüllen.

Ausführliche Erklärung der Trigger in der MySQL-Lernzusammenfassung

Empfohlenes Lernen: MySQL-Tutorial

Trigger

1. Einführung in Trigger

Ein Trigger ist eine spezielle gespeicherte Prozedur. Ein Trigger ist wie eine gespeicherte Prozedur ein SQL-Segment, das eine bestimmte Funktion ausführen kann und auf dem Datenbankserver gespeichert wird. Der Trigger muss jedoch nicht automatisch aufgerufen werden, wenn DML-Vorgänge an den Daten in der Datentabelle ausgeführt werden Für die Ausführung dieses SQL-Segments ist kein manueller Aufruf erforderlich.

In MySQL kann nur die Operation insertdeleteupdate die Ausführung des Triggers auslösen. 2. Trigger-Nutzung. 1. Trigger erstellen ALT

Trigger werden zum Überwachen von Einfüge-, Lösch- und Aktualisierungsvorgängen für Daten in der Datentabelle verwendet. Trigger verarbeiten normalerweise einige DML-bezogene Vorgänge. Wir können die Daten des DML-Vorgangs abrufen, der diesen Trigger auslöst im Trigger

NEU: Im Trigger⽤ Wird verwendet, um die durch den Einfügevorgang hinzugefügten Daten und den durch den Aktualisierungsvorgang geänderten Datensatz abzurufen.

ALT: Im Trigger⽤ Um die Daten vor dem Löschen durch den Löschvorgang abzurufen und Daten vor der Änderung durch Aktualisierungsvorgang

1. Verwendung von ALT

create trigger tri_name   -- tri_name:触发器别名
<before|after> 						-- 定义触发时机
<insert|delete|update>		-- 定义DML类型
ON <table_name>						-- 要触发的表
for each <row|statement>							
-- for each row 声明为⾏级触发器(操作的每⼀条记录就触发触发器执⾏⼀次)
-- for each statement 声明语句级触发器(触发动作体执行一次)
begin											-- 当只有一句sql语句时,begin...end 可以省略	
	sql_statement 					-- 进行触发器对应的DML类型的操作
end;


#示例
-- 创建触发器:当学⽣信息表发⽣添加操作时,则向⽇志信息表中记录⼀条⽇志
create trigger tri_test1
after insert on students
for each row
insert into stulogs(time,log_text) values(now(), concat('添 加',NEW.stu_num,'学⽣信息'));

4 Die entsprechende DML-Operation wird für die Tabelle ausgeführt, die sich auf den Trigger bezieht. Trigger können kaskadierende Operationen (Assoziationsoperationen) von Daten in der Tabelle implementieren, einschließlich Dies ist hilfreich, um die Integrität von Daten sicherzustellen.

Trigger können eine komplexere Legalitätsüberprüfung durchführen zu DML-Betriebsdaten

2. Nachteile

Erschweren Sie das Auffinden von Problemen mit der durch Trigger implementierten Geschäftslogik, die spätere Wartung ist schwierig

Die Verwendung einer großen Anzahl von Triggern kann leicht zu einer unordentlichen Codestruktur führen und zu einer Zunahme führen die Komplexität des Programms;

Wenn die vom Trigger verarbeitete Datenmenge relativ groß ist, wird die Ausführungseffizienz erheblich verringert.
  • 3. Verwendungsempfehlungen
  • In Internetprojekten sollte die Anpassung von Triggern vermieden werden.
Bei Projekten mit geringer Parallelität können Sie sich für die Verwendung gespeicherter Prozeduren entscheiden, deren Verwendung wird jedoch in Internetreferenzen nicht empfohlen

(Grund: Beim Speichern von Prozeduren wird die Logik der Geschäftsimplementierung zur Verarbeitung an die Datenbank übergeben, was die Belastung der Datenbank erhöht oder verringert und der Datenbankmigration nicht förderlich ist)

Empfohlenes Lernen:

MySQL-Lern-Tutorial

Das obige ist der detaillierte Inhalt vonAusführliche Erklärung der Trigger in der MySQL-Lernzusammenfassung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:csdn.net. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen