Heim > Datenbank > SQL > Hauptteil

Die Verwendung und Syntax von SQL-Triggern

小老鼠
Freigeben: 2024-04-13 14:57:16
Original
978 Leute haben es durchsucht

Ein Trigger ist ein Datenbankcode, der automatisch ausgeführt wird, wenn ein bestimmtes Ereignis (Einfügen, Aktualisieren, Löschen) auftritt. Die Triggersyntax umfasst den Triggernamen, den Tabellennamen, die Triggerzeit (VOR/NACH) und den Ereignistyp (INSERT/UPDATE/DELETE). Zu den Auslösertypen gehören BEFORE und AFTER und zu den Ereignistypen INSERT, UPDATE und DELETE. Trigger können zur Überprüfung der Datenintegrität, Audit-Protokollierung, automatisierten Aufgaben und Geschäftslogik verwendet werden. Sie können beispielsweise einen Trigger erstellen, um die Einfügezeit aufzuzeichnen, wenn eine neue Zeile eingefügt wird, um die Datenkonsistenz sicherzustellen.

Die Verwendung und Syntax von SQL-Triggern

SQL-Trigger-Verwendung und -Syntax

Was ist ein Trigger?

Ein Trigger ist ein Codeteil in der Datenbank, der automatisch die Ausführung auslöst, wenn ein bestimmtes Ereignis in der Datenbank auftritt. Sie werden verwendet, um benutzerdefinierte Aktionen auszuführen, wenn sich Daten ändern.

Die Syntax von Triggern

Die Syntax von Triggern in SQL lautet wie folgt:

<code>CREATE TRIGGER trigger_name
ON table_name
FOR INSERT | UPDATE | DELETE
AS
BEGIN
   -- 触发器代码...
END;</code>
Nach dem Login kopieren

Typen von Triggern

Entsprechend dem Auslösezeitpunkt können Trigger in die folgenden Typen unterteilt werden:

  • BEFORE code> Auslöser: Ausführen, bevor das Ereignis eintritt.
  • BEFORE 触发器:在事件发生之前执行。
  • AFTER 触发器:在事件发生之后执行。

根据事件类型,触发器可分为:

  • INSERT 触发器:在插入新行时触发。
  • UPDATE 触发器:在更新现有行时触发。
  • DELETE 触发器:在删除行时触发。

触发器的使用场景

触发器广泛用于以下场景:

  • 数据完整性验证:确保数据符合特定规则(例如,非空约束、唯一性约束)。
  • 审计和记录:跟踪数据库中的变化并记录用户活动。
  • 自动任务:在数据更改时自动执行特定任务(例如,发送电子邮件通知)。
  • 业务逻辑:实现复杂的业务规则,例如计算 derived column 或维护关联表。

示例

以下是一个示例触发器,用于在向 users 表中插入新行时记录插入时间:

<code class="sql">CREATE TRIGGER insert_timestamp
BEFORE INSERT ON users
AS
BEGIN
   SET NEW.created_at = CURRENT_TIMESTAMP();
END;</code>
Nach dem Login kopieren

当插入新行到 users 表时,insert_timestamp 触发器会在插入之前执行,并自动将当前时间戳设置为新建行的 created_atAFTER Auslöser: wird ausgeführt, nachdem das Ereignis eintritt.

Je nach Ereignistyp können Trigger unterteilt werden in: 🎜🎜🎜INSERT Trigger: Wird ausgelöst, wenn eine neue Zeile eingefügt wird. 🎜UPDATE Auslöser: Wird ausgelöst, wenn eine vorhandene Zeile aktualisiert wird. 🎜DELETE Auslöser: Wird ausgelöst, wenn eine Zeile gelöscht wird. 🎜🎜Verwendungsszenarien von Triggern🎜🎜🎜Trigger werden häufig in den folgenden Szenarien verwendet: 🎜🎜🎜🎜Überprüfung der Datenintegrität: 🎜Stellen Sie sicher, dass die Daten bestimmten Regeln entsprechen (z. B. Nicht-Null-Einschränkungen). , Eindeutigkeitsbeschränkung). 🎜🎜Überwachung und Protokollierung: 🎜Verfolgen Sie Änderungen in der Datenbank und protokollieren Sie Benutzeraktivitäten. 🎜🎜Automatisierte Aufgaben: 🎜Bestimmte Aufgaben automatisch ausführen, wenn sich Daten ändern (z. B. E-Mail-Benachrichtigungen senden). 🎜🎜Geschäftslogik: 🎜Implementieren Sie komplexe Geschäftsregeln, z. B. die Berechnung abgeleiteter Spalten oder die Pflege verwandter Tabellen. 🎜🎜Beispiel🎜🎜🎜Das Folgende ist ein Beispielauslöser zum Protokollieren der Einfügezeit, wenn eine neue Zeile in die users-Tabelle eingefügt wird: 🎜rrreee🎜Wenn eine neue Zeile wird eingefügt. Wenn Sie zur Tabelle users gehen, wird der Trigger insert_timestamp vor dem Einfügen ausgeführt und setzt den aktuellen Zeitstempel automatisch auf das Feld created_at der neuen Zeile . 🎜

Das obige ist der detaillierte Inhalt vonDie Verwendung und Syntax von SQL-Triggern. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
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!