Dieser Artikel vermittelt Ihnen relevantes Wissen über MySQL, in dem hauptsächlich verwandte Themen zu Triggern vorgestellt werden, einschließlich der Frage, was Trigger sind, wie Trigger in der Datenbank erstellt werden und ob Trigger Fremdschlüssel ersetzen können. Schauen wir uns das hoffentlich einmal an es wird für alle hilfreich sein.
Empfohlenes Lernen: MySQL-Video-Tutorial
Konzept: Trigger ist eine Methode, die Programmierern und Datenanalysten vom SQL-Server zur Verfügung gestellt wird, um die Datenintegrität sicherzustellen. Es handelt sich um eine spezielle gespeicherte Prozedur, die sich auf Tabellenereignisse bezieht. Ihre Ausführung erfolgt nicht, indem Programmaufrufe nicht manuell gestartet werden Werden beispielsweise durch Ereignisse ausgelöst (Einfügen, Löschen, Aktualisieren), wird deren Ausführung aktiviert. Trigger werden häufig verwendet, um Datenintegritätseinschränkungen und Geschäftsregeln durchzusetzen. Trigger finden Sie in den Datenwörterbüchern DBA_TRIGGERS und USER_TRIGGERS. Ein SQL3-Trigger ist eine Anweisung, die vom System automatisch ausgeführt werden kann, um die Datenbank zu ändern.
Beispiel 1: Erstellen Sie eine Benutzertabelle (Benutzer-ID, Benutzername) und erstellen Sie einen Trigger (Wenn Daten in die Benutzertabelle eingefügt werden, wird automatisch eine global eindeutige ID generiert)
Erstellen Sie zuerst die Benutzertabelle
create table user( id int PRIMARY KEY, name varchar(20) );
Erstellen Sie einen Trigger
-- 建立触发器名为tt create TRIGGER tt -- 触发条件,向user表中插入数据时启动触发器 BEFORE insert on user -- 检查表中每一行,对新插入的数据进行操作 for EACH ROW -- 执行操作 BEGIN set new.id=UUID(); END
Der soeben erstellte Trigger (sehen Sie sich den Trigger unten an). Die aktuelle Datenbank (Alle Triggercodes zeigen Trigger)
Wirkung: Fügen Sie drei Benutzernamen in die Tabelle ein und generieren Sie automatisch drei IDs
insert user(name) VALUE('张三'),('李四'),('王五')
Beispiel 2: Erstellen Sie eine weitere Bestelltabelle DD (Bestell-ID, Produktname , Benutzer-ID), erstellen Sie einen Trigger tq1 (wenn ein Benutzer gelöscht wird, wird auch die Bestellung des Benutzers gelöscht)
Erstellen Sie eine Tabelle
create table DD( ddid int PRIMARY KEY, ddname VARCHAR(20), userid VARCHAR(50) )
Erstellen Sie einen Trigger
delimiter $ -- 建立触发器名为tq create TRIGGER tq1 -- 触发条件,再dd表删除数据之后启动触发器 AFTER DELETE on user -- 检查表中每一行,对新插入的数据进行操作 for EACH ROW -- 执行操作 BEGIN DELETE FROM dd WHERE old.id=userid; END $ delimiter ;
zur Tabelle hinzufügen zwei Datenelemente
Wirkung: Löschen Sie den Benutzer in der Benutzertabelle, und die Datensätze in der dd-Tabelle werden ebenfalls gelöscht Ersetzen Sie den externen Schlüssel
Wenn das obige Beispiel 2 auch mit Fremdschlüsseln den gleichen Effekt erzielen kann, bedeutet das dann, dass Trigger alles tun können, was Fremdschlüssel können, und Trigger, die Fremdschlüssel nicht können, dies auch tun können?
Im Vergleich zu Fremdschlüsseln weisen Trigger eine höhere Flexibilität und mehr Funktionen auf und können mehr Funktionen ausführen. Bis zu einem gewissen Grad können Trigger Fremdschlüssel ersetzen und die Funktionen von Fremdschlüsseln realisieren.
Trigger können auch verwendet werden, um die referenzielle Integrität zu erzwingen, sodass beim Hinzufügen, Aktualisieren oder Löschen von Zeilen in mehreren Tabellen die zwischen diesen Tabellen definierten Beziehungen erhalten bleiben. Der beste Weg, die referenzielle Integrität durchzusetzen, besteht jedoch darin, Primärschlüssel- und Fremdschlüsseleinschränkungen in den zugehörigen Tabellen zu definieren. Wenn Sie ein Datenbankdiagramm verwenden, können Sie Beziehungen zwischen Tabellen erstellen, um automatisch Fremdschlüsseleinschränkungen zu erstellen.
Das obige ist der detaillierte Inhalt vonLassen Sie uns über MYSQL-Datenbank-Trigger sprechen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!