Heim >Datenbank >MySQL-Tutorial >Lassen Sie uns über MYSQL-Datenbank-Trigger sprechen

Lassen Sie uns über MYSQL-Datenbank-Trigger sprechen

WBOY
WBOYnach vorne
2022-04-12 18:23:031795Durchsuche

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.

Lassen Sie uns über MYSQL-Datenbank-Trigger sprechen

Empfohlenes Lernen: MySQL-Video-Tutorial

Verstehen Sie zunächst Trigger und besprechen Sie dann, ob sie Fremdschlüssel vollständig ersetzen können

Was sind Trigger?

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.

  • Für Laien ausgedrückt ist ein Auslöser ein Auslösegerät, und im Gerät ist ein Vorgang gespeichert. Dieses Gerät verfügt über eine Auslösebedingung. Wenn eine bestimmte Bedingung erfüllt ist, wird das Gerät ausgelöst und das Auslösegerät führt einen gespeicherten Vorgang aus.

So erstellen Sie einen Trigger in der Datenbank

Erstellen Sie eine Triggerinstanz (Stichwort: Trigger)

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)
);

Lassen Sie uns über MYSQL-Datenbank-Trigger sprechen
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)
Lassen Sie uns über MYSQL-Datenbank-Trigger sprechen
Wirkung: Fügen Sie drei Benutzernamen in die Tabelle ein und generieren Sie automatisch drei IDs

insert user(name) VALUE('张三'),('李四'),('王五')

Lassen Sie uns über MYSQL-Datenbank-Trigger sprechen
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)
)

Lassen Sie uns über MYSQL-Datenbank-Trigger sprechen
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 ;

Lassen Sie uns über MYSQL-Datenbank-Trigger sprechen
zur Tabelle hinzufügen zwei Datenelemente
Lassen Sie uns über MYSQL-Datenbank-Trigger sprechen

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. Lassen Sie uns über MYSQL-Datenbank-Trigger sprechen
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. Lassen Sie uns über MYSQL-Datenbank-Trigger sprechen

Zusammenfassung:
    Trigger können in einigen Fällen Fremdschlüssel ersetzen, jedoch nicht in allen Situationen. Fremdschlüssel und Trigger können auch zusammen verwendet werden
  • Empfohlenes Lernen:
  • MySQL-Video-Tutorial

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!

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