Heim Datenbank MySQL-Tutorial mysql学习记录(十二)--触发器_MySQL

mysql学习记录(十二)--触发器_MySQL

May 30, 2016 pm 05:11 PM
触发器

一、理论:
1.触发器不能使用采用call的动态sql,不能直接返回数据到客户端
2.不能在触发器中使用开始或者结束事务的语句
3.触发器只能在支持事务的表中回滚

二、实践:

 

mysql> use test1;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed

mysql> create table film_text(
    -> film_id int(11),
    -> title varchar(20),
    -> description varchar(180)
    -> ) engine = innodb charset = utf8 ;
Query OK, 0 rows affected (0.05 sec)

mysql> create table film(
    -> film_id int(11),
    -> title varchar(20),
    -> description varchar(180)
    -> ) engine = innodb charset = utf8 ;
Query OK, 0 rows affected (0.02 sec)

mysql> CREATE TABLE `tri_demo` (
    ->   `id`  int(11) auto_increment not null primary key,
    ->   `note` varchar(50) DEFAULT NULL
    -> ) ENGINE=InnoDB DEFAULT CHARSET=utf8 ;
Query OK, 0 rows affected (0.03 sec)

mysql> create trigger ins_film_bef
    -> before insert on film for each row begin
    -> insert into tri_demo(note) values ('before insert');
    -> end;
    -> $$
Query OK, 0 rows affected (0.02 sec)

mysql> create trigger ins_film_aft
    -> after insert on film for each row begin
    -> insert into film_text(title) values ('after insert');
    -> end;
    -> $$
Query OK, 0 rows affected (0.02 sec)

mysql> create trigger upd_film_bef
    -> before update on film for each row begin
    -> insert into tri_demo(note) values ('before update');
    -> end;
    -> $$
Query OK, 0 rows affected (0.00 sec)

mysql> create trigger upd_film_aft
    -> after update on film for each row begin
    -> insert into tri_demo(note) values ('after update');
    -> end;
    -> $$
Query OK, 0 rows affected (0.02 sec)
mysql> delimiter ;

mysql> insert into film values ( 1,'film_name','film_description');
Query OK, 1 row affected (0.00 sec)

mysql> select * from film;
+---------+-----------+------------------+
| film_id | title     | description      |
+---------+-----------+------------------+
|       1 | film_name | film_description |
+---------+-----------+------------------+

mysql> select * from tri_demo;
+----+---------------+
| id | note          |
+----+---------------+
|  1 | before insert |
+----+---------------+

mysql> update film set title='film_update' where film_id = 1;
Query OK, 1 row affected, 1 warning (0.01 sec)
Rows matched: 1  Changed: 1  Warnings: 1

mysql> select * from film;
+---------+--------------------+--------------------------+
| film_id | title              | description              |
+---------+--------------------+--------------------------+
|       1 | film_update        | film_description         |
+---------+--------------------+--------------------------+
1 rows in set (0.00 sec)

mysql> select * from tri_demo;
+----+---------------+
| id | note          |
+----+---------------+
|  1 | before insert |
|  2 | before update |
|  3 | after update  |
+----+---------------+
3 rows in set (0.00 sec)

mysql> show triggers \G;
*************************** 1. row ***************************
             Trigger: ins_film_bef
               Event: INSERT
               Table: film
           Statement: begin
insert into tri_demo(note) values ('before insert');
end
              Timing: BEFORE
             Created: NULL
            sql_mode: 
             Definer: root@localhost
character_set_client: utf8
collation_connection: utf8_general_ci
  Database Collation: utf8_general_ci
*************************** 2. row ***************************
             Trigger: ins_film_aft
               Event: INSERT
               Table: film
           Statement: begin
     insert into film_text(title) values ('after insert');
     end
              Timing: AFTER
             Created: NULL
            sql_mode: 
             Definer: root@localhost
character_set_client: utf8
collation_connection: utf8_general_ci
  Database Collation: utf8_general_ci
*************************** 3. row ***************************
             Trigger: upd_film_bef
               Event: UPDATE
               Table: film
           Statement: begin
insert into tri_demo(note) values ('before update');
end
              Timing: BEFORE
             Created: NULL
            sql_mode: 
             Definer: root@localhost
character_set_client: utf8
collation_connection: utf8_general_ci
  Database Collation: utf8_general_ci
*************************** 4. row ***************************
             Trigger: upd_film_aft
               Event: UPDATE
               Table: film
           Statement: begin
insert into tri_demo(note) values ('after update');
end
              Timing: AFTER
             Created: NULL
            sql_mode: 
             Definer: root@localhost
character_set_client: utf8
collation_connection: utf8_general_ci
  Database Collation: utf8_general_ci
4 rows in set (0.01 sec)

Nach dem Login kopieren
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.

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.

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