Heim Datenbank MySQL-Tutorial MySQL触发器trigger学习_MySQL

MySQL触发器trigger学习_MySQL

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

触发器:一类特殊的事物,可监视某种数据操作,并触发相关操作(insert/update/delete);表中的某些数据改变,希望同时可以引起其它相关数据改变的需求。 作用:变化自动完成某些语句查询,添加程序的灵活性。 创建触发器语法: #delimiter $$ //默认情况下,delimiter是分号“;”,sql语句带有;号结尾会报错,没到end就算到结束了,使用delimiter $$作用就是告诉mysql语句的结尾换成以$结束,相应使用end$$结束

create trigger test1  #触发器名称
(after/before) #触发时间
(insert/update/delete)  #监视事件
on table #监视地点(表名)
for each row  #mysql必须加的 
begin
    sql1
    ...
    sqlN
end;
#end$$
Nach dem Login kopieren
查询已有trigger:show triggers 删除已有trigger:drop trigger 触发器名称 new/old: update触发:old 代表更新前的记录。new 代表更新后的记录. insert触发:old 不能使用。new 代表插入的记录. delete触发:old 代表删除的记录。new 不能使用.
实例操作: goods商品表和ord订单表
CREATE TABLE goods(
`goods_id` INT(10),
`name` VARCHAR(20),
`num` SMALLINT(4)
)ENGINE=INNODB CHARSET=utf8
CREATE TABLE `ord`(
`oid` INT(10),
`gid` INT(10),
`much` INT(10)
)ENGINE=INNODB CHARSET=utf8
INSERT INTO goods VALUES
(1, 'cat', 26),(2, 'dog', 26),(3, 'pig', 26);
Nach dem Login kopieren
1、要求每下一个订单,goods表中的库存相应减少订单的数量。 mysql> select * from goods +----------+------+------+ | goods_id | name | num | +----------+------+------+ | 1 | cat | 26 | | 2 | dog | 26 | | 3 | pig | 26 | +----------+------+------+ 3 rows in set (0.00 sec) mysql> select * from ord; Empty set (0.00 sec)
#创建触发器test1
DELIMITER $$
CREATE TRIGGER test1
AFTER
INSERT
ON `ord`
FOR EACH ROW
BEGIN
UPDATE goods SET num= num - new.much WHERE goods_id = new.gid;
END$$
Nach dem Login kopieren

mysql> CREATE TRIGGER test1 -> AFTER -> INSERT -> ON `ord` -> FOR EACH ROW -> BEGIN -> UPDATE goods SET num= num - new.much WHERE goods_id = new.gid; -> END$$ Query OK, 0 rows affected (0.00 sec) mysql> INSERT INTO `ord` VALUES (1, 2, 2)$$ Query OK, 1 row affected (0.03 sec) mysql> select * from ord$$ +------+------+------+ | oid | gid | much | +------+------+------+ | 1 | 2 | 2 | +------+------+------+ 1 row in set (0.00 sec) mysql> select * from goods$$ +----------+------+------+ | goods_id | name | num | +----------+------+------+ | 1 | cat | 26 | | 2 | dog | 24 | | 3 | pig | 26 | +----------+------+------+ 3 rows in set (0.00 sec) goods表里面的dog由26变成24
2、用户取消订单后商品库存订单的商品数要正常入库。以下只写触发器trigger,操作过程不写太多比较乱。
#触发器test2
CREATE TRIGGER test2
AFTER
DELETE
ON `ord`
FOR EACH ROW
BEGIN
UPDATE goods SET num = num + old.much WHERE goods_id = old.gid;
END $$ 
Nach dem Login kopieren
\
3、用户更新订单的时候,商品库存要根据订单的数量正常更新。
#触发器test3
CREATE TRIGGER test3
AFTER
UPDATE
ON `ord`
FOR EACH ROW
BEGIN
UPDATE goods SET num = num + old.much - new.much WHERE goods_id = new.gid;
END$$
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

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