Heim Datenbank MySQL-Tutorial MySQL笔记之触发器的应用_MySQL

MySQL笔记之触发器的应用_MySQL

Jun 01, 2016 pm 01:24 PM
触发器

bitsCN.com

创建触发器

创建只有一个执行语句的触发器

CREATE TRIGGER 触发器名 BEFORE|AFTER 触发事件
ON 表名 FOR EACH ROW 执行语句

其中,触发器名参数指要创建的触发器的名字

BEFORE和AFTER参数指定了触发执行的时间,在事件之前或是之后

FOR EACH ROW表示任何一条记录上的操作满足触发事件都会触发该触发器

mysql> CREATE TRIGGER trig1 AFTER INSERT
    -> ON work FOR EACH ROW
    -> INSERT INTO time VALUES(NOW());
Query OK, 0 rows affected (0.09 sec)

上面创建了一个名为trig1的触发器,一旦在work中有插入动作,就会自动往time表里插入当前时间


创建有多个执行语句的触发器

CREATE TRIGGER 触发器名 BEFORE|AFTER 触发事件
ON 表名 FOR EACH ROW
BEGIN
    执行语句列表
END

其中,BEGIN与END之间的执行语句列表参数表示需要执行的多个语句,不同语句用分号隔开

tips:一般情况下,mysql默认是以 ; 作为结束执行语句,与触发器中需要的分行起冲突

     为解决此问题可用DELIMITER,如:DELIMITER ||,可以将结束符号变成||

     当触发器创建完成后,可以用DELIMITER ;来将结束符号变成;

mysql> DELIMITER ||
mysql> CREATE TRIGGER trig2 BEFORE DELETE
    -> ON work FOR EACH ROW
    -> BEGIN
    -> INSERT INTO time VALUES(NOW());
    -> INSERT INTO time VALUES(NOW());
    -> END
    -> ||
Query OK, 0 rows affected (0.06 sec)

mysql> DELIMITER ;

上面的语句中,开头将结束符号定义为||,中间定义一个触发器,一旦有满足条件的删除操作

就会执行BEGIN和END中的语句,接着使用||结束

最后使用DELIMITER ; 将结束符号还原


查看触发器
SHOW TRIGGERS语句查看触发器信息

mysql> SHOW TRIGGERS/G;
*************************** 1. row ***************************
             Trigger: trig1
               Event: INSERT
               Table: work
           Statement: INSERT INTO time VALUES(NOW())
              Timing: AFTER
             Created: NULL
            sql_mode:
             Definer: root@localhost
character_set_client: utf8
collation_connection: utf8_general_ci
  Database Collation: latin1_swedish_ci

结果会显示所有触发器的基本信息

tips:SHOW TRIGGERS语句无法查询指定的触发器


在triggers表中查看触发器信息

mysql> SELECT * FROM information_schema.triggers/G
*************************** 1. row ***************************
           TRIGGER_CATALOG: def
            TRIGGER_SCHEMA: person
              TRIGGER_NAME: trig1
        EVENT_MANIPULATION: INSERT
      EVENT_OBJECT_CATALOG: def
       EVENT_OBJECT_SCHEMA: person
        EVENT_OBJECT_TABLE: work
              ACTION_ORDER: 0
          ACTION_CONDITION: NULL
          ACTION_STATEMENT: INSERT INTO time VALUES(NOW())

结果显示了所有触发器的详细信息,同时,该方法可以查询制定触发器的详细信息

mysql> SELECT * FROM information_schema.triggers WHERE TRIGGER_NAME='trig1'/G
*************************** 1. row ***************************
           TRIGGER_CATALOG: def
            TRIGGER_SCHEMA: person
              TRIGGER_NAME: trig1
        EVENT_MANIPULATION: INSERT
      EVENT_OBJECT_CATALOG: def
       EVENT_OBJECT_SCHEMA: person
        EVENT_OBJECT_TABLE: work

tips:所有触发器信息都存储在information_schema数据库下的triggers表中

     可以使用SELECT语句查询,如果触发器信息过多,最好通过TRIGGER_NAME字段指定查询


删除触发器

mysql> DROP TRIGGER trig1;
Query OK, 0 rows affected (0.04 sec)

删除触发器之后最好使用上面的方法查看一遍

同时,也可以使用database.trig来指定某个数据库中的触发器

tips:如果不需要某个触发器时一定要将这个触发器删除,以免造成意外操作

bitsCN.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

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
2 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Repo: Wie man Teamkollegen wiederbelebt
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Abenteuer: Wie man riesige Samen bekommt
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

So verbergen Sie Text in Powerpoint, bis er angeklickt wird So verbergen Sie Text in Powerpoint, bis er angeklickt wird Apr 14, 2023 pm 04:40 PM

So blenden Sie Text vor jedem Klick in PowerPoint aus Wenn Sie möchten, dass Text angezeigt wird, wenn Sie irgendwo auf eine PowerPoint-Folie klicken, ist die Einrichtung schnell und einfach. So blenden Sie Text aus, bevor Sie in PowerPoint auf eine Schaltfläche klicken: Öffnen Sie Ihr PowerPoint-Dokument und klicken Sie auf das Menü „Einfügen“. Klicken Sie auf Neue Folie. Wählen Sie „Leer“ oder eine der anderen Voreinstellungen. Klicken Sie immer noch im Menü „Einfügen“ auf „Textfeld“. Ziehen Sie ein Textfeld auf die Folie. Klicken Sie auf das Textfeld und geben Sie Ihre ein

So fügen Sie einen Trigger in Oracle hinzu So fügen Sie einen Trigger in Oracle hinzu Dec 12, 2023 am 10:17 AM

In der Oracle-Datenbank können Sie die CREATE TRIGGER-Anweisung verwenden, um Trigger hinzuzufügen. Ein Trigger ist ein Datenbankobjekt, das ein oder mehrere Ereignisse in einer Datenbanktabelle definieren und automatisch entsprechende Aktionen ausführen kann, wenn das Ereignis eintritt.

Auf welcher Ebene ist MySQL-Trigger? Auf welcher Ebene ist MySQL-Trigger? Mar 30, 2023 pm 08:05 PM

MySQL-Trigger erfolgen auf Zeilenebene. Gemäß SQL-Standards können Trigger in zwei Typen unterteilt werden: 1. Trigger auf Zeilenebene, die einmal für jede geänderte Datenzeile aktiviert werden. Wenn eine Anweisung 100 Datenzeilen einfügt, wird der Trigger 100 Mal aufgerufen . Trigger auf Anweisungsebene Der Trigger wird einmal für jede Anweisung aktiviert. Eine Anweisung, die 100 Datenzeilen einfügt, ruft den Trigger nur einmal auf. MySQL unterstützt nur Trigger auf Zeilenebene, keine Trigger auf vorbereiteter Anweisungsebene.

So verwenden Sie MySQL-Trigger, um die automatische Archivierung von Daten zu implementieren So verwenden Sie MySQL-Trigger, um die automatische Archivierung von Daten zu implementieren Aug 02, 2023 am 10:37 AM

So verwenden Sie MySQL-Trigger, um die automatische Archivierung von Daten zu implementieren. Einführung: Im Bereich der modernen Datenverwaltung ist die automatische Archivierung und Bereinigung von Daten eine wichtige und häufige Anforderung. Wenn die Datenmenge zunimmt, wird die Beibehaltung vollständiger Verlaufsdaten übermäßig viel Speicherressourcen beanspruchen und die Abfrageleistung verringern. MySQL-Trigger bieten eine effektive Möglichkeit, diese Anforderung zu erfüllen. In diesem Artikel wird erläutert, wie Sie mithilfe von MySQL-Triggern eine automatische Archivierung von Daten erreichen. 1. Was ist ein MySQL-Trigger? Ein MySQL-Trigger ist eine besondere Art von Speicher.

So schreiben Sie benutzerdefinierte Trigger und gespeicherte Prozeduren in MySQL mit PHP So schreiben Sie benutzerdefinierte Trigger und gespeicherte Prozeduren in MySQL mit PHP Sep 20, 2023 am 11:25 AM

So schreiben Sie benutzerdefinierte Trigger und gespeicherte Prozeduren in MySQL mit PHP. Einführung: Bei der Entwicklung von Anwendungen müssen wir häufig einige Vorgänge auf Datenbankebene ausführen, z. B. das Einfügen, Aktualisieren oder Löschen von Daten. MySQL ist ein weit verbreitetes relationales Datenbankverwaltungssystem und PHP ist eine beliebte serverseitige Skriptsprache. In diesem Artikel wird erläutert, wie Sie mit PHP benutzerdefinierte Trigger und gespeicherte Prozeduren in MySQL schreiben, und es werden spezifische Codebeispiele bereitgestellt. 1. Was sind Trigger und gespeicherte Prozedur-Trigger (Trigg

So schreiben Sie benutzerdefinierte gespeicherte Prozeduren, Trigger und Funktionen in MySQL mit C# So schreiben Sie benutzerdefinierte gespeicherte Prozeduren, Trigger und Funktionen in MySQL mit C# Sep 20, 2023 pm 12:04 PM

So schreiben Sie benutzerdefinierte gespeicherte Prozeduren, Trigger und Funktionen in MySQL mit C# MySQL ist ein weit verbreitetes relationales Open-Source-Datenbankverwaltungssystem, und C# ist eine leistungsstarke Programmiersprache für Entwicklungsaufgaben, die eine Interaktion mit der Datenbank erfordern Entscheidungen. In MySQL können wir C# verwenden, um benutzerdefinierte gespeicherte Prozeduren, Trigger und Funktionen zu schreiben, um flexiblere und leistungsfähigere Datenbankoperationen zu erreichen. Dieser Artikel führt Sie durch die Verwendung von C# zum Schreiben und Ausführen

So schreiben Sie Trigger in MySQL mit PHP So schreiben Sie Trigger in MySQL mit PHP Sep 21, 2023 am 08:16 AM

So schreiben Sie Trigger in MySQL mit PHP MySQL ist ein häufig verwendetes relationales Datenbankverwaltungssystem und PHP ist eine beliebte serverseitige Skriptsprache. Die Verwendung von PHP zum Schreiben von Triggern in MySQL kann uns dabei helfen, automatisierte Datenbankoperationen zu realisieren. In diesem Artikel wird erläutert, wie Sie mit PHP MySQL-Trigger schreiben, und es werden spezifische Codebeispiele bereitgestellt. Stellen Sie vor dem Start sicher, dass MySQL und PHP installiert sind und die entsprechenden Datenbanktabellen erstellt wurden. 1. Erstellen Sie PHP-Dateien und -Daten

So schreiben Sie benutzerdefinierte Trigger in MySQL mit Python So schreiben Sie benutzerdefinierte Trigger in MySQL mit Python Sep 20, 2023 am 11:04 AM

So schreiben Sie benutzerdefinierte Trigger in MySQL mit Python Trigger sind eine leistungsstarke Funktion in MySQL, die einige automatisch ausgeführte Vorgänge für Tabellen in der Datenbank definieren kann. Python ist eine prägnante und leistungsstarke Programmiersprache, die problemlos mit MySQL interagieren kann. In diesem Artikel wird das Schreiben benutzerdefinierter Trigger mit Python vorgestellt und spezifische Codebeispiele bereitgestellt. Zuerst müssen wir die PyMySQL-Bibliothek installieren und importieren. Dies ist Pythons Art, mit einer MySQL-Datenbank zu arbeiten

See all articles