MySQL觸發(fā)器簡(jiǎn)單用法示例
本文實(shí)例講述了MySQL觸發(fā)器簡(jiǎn)單用法。分享給大家供大家參考,具體如下:
mysql觸發(fā)器和存儲(chǔ)過(guò)程一樣,是嵌入到mysql的一段程序,觸發(fā)器是由事件來(lái)觸發(fā)的,這些事件包括,INSERT,UPDATE,DELETE,不包括SELECT
創(chuàng)建觸發(fā)器
CREATE TRIGGER name,time,event ON table_name FOR EACH ROW trigger_stmt
例如
有多個(gè)執(zhí)行語(yǔ)句的觸發(fā)器
CREATE TABLE test1(a1 INT);
CREATE TABLE test2(a2 INT);
CREATE TABLE test3(a3 INT NOT NULL AUTO_INCREMENT PRIMARY KEY);
CREATE TABLE test4(
a4 INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
b4 INT DEFAULT 0
);
DELIMITER //
CREATE TRIGGER testref BEFORE INSERT ON test1
FOR EACH ROW BEGIN
INSERT INTO test2 SET a2 = NEW.a1;
DELETE FROM test3 where a3 = NEW.a1;
UPDATE test4 SET b4 = b4 + 1 WHERE a4 = NEW.a1;
END
//
DELIMITER ;
INSERT INTO test3(a3) VALUES (NULL), (NULL), (NULL), (NULL), (NULL), (NULL),(NULL), (NULL), (NULL), (NULL), (NULL), (NULL);
INSERT INTO test4(a4) VALUES (0), (0), (0), (0), (0), (0), (0), (0), (0), (0);
//開(kāi)始測(cè)試
INSERT INTO test1 VALUES (1), (3), (1), (7), (1), (8), (4), (4);
查看觸發(fā)器
SHOW TRIGGERS \G; //查看所有 SELECT * FROM information_schema.TRIGGERS where TRIGGER_NAME = 'testref';
刪除觸發(fā)器
DROP TRIGGER testref;
綜合案例
步驟1:創(chuàng)建persons表
CREATE TABLE persons (name VARCHAR(40), num int);
步驟2:創(chuàng)建一個(gè)銷售額表sales
CREATE TABLE sales (name VARCHAR(40), sum int);
步驟3:創(chuàng)建一個(gè)觸發(fā)器
CREATE TRIGGER num_sum AFTER INSERT ON persons FOR EACH ROW INSERT INTO sales VALUES (NEW.name,7*NEW.num);
步驟4:向persons表中插入記錄
INSERT INTO persons VALUES ('xiaoxiao',20),('xiaohua',69);
SELECT * FROM persons;
SELECT *FROM sales;
更多關(guān)于MySQL相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《MySQL查詢技巧大全》、《MySQL事務(wù)操作技巧匯總》、《MySQL存儲(chǔ)過(guò)程技巧大全》、《MySQL數(shù)據(jù)庫(kù)鎖相關(guān)技巧匯總》及《MySQL常用函數(shù)大匯總》
希望本文所述對(duì)大家MySQL數(shù)據(jù)庫(kù)計(jì)有所幫助。
相關(guān)文章
詳解MySQL數(shù)據(jù)庫(kù)優(yōu)化的八種方式(經(jīng)典必看)
關(guān)于數(shù)據(jù)庫(kù)優(yōu)化,網(wǎng)上有不少資料和方法,但是不少質(zhì)量參差不齊,有些總結(jié)的不夠到位,內(nèi)容冗雜。今天給大家分享一篇文章關(guān)于mysql數(shù)據(jù)庫(kù)優(yōu)化的八種方式,非常經(jīng)典,需要的的朋友參考下2017-03-03
MySQL decimal unsigned更新負(fù)數(shù)轉(zhuǎn)化為0
這篇文章主要介紹了MySQL decimal unsigned更新負(fù)數(shù)轉(zhuǎn)化為0,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-12-12
gorm操作MySql數(shù)據(jù)庫(kù)的方法
這篇文章主要介紹了gorm操作MySql數(shù)據(jù)庫(kù)的方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-03-03
MySQL+Redis緩存+Gearman共同構(gòu)建數(shù)據(jù)庫(kù)緩存的方法
這篇文章主要介紹了MySQL+Redis緩存+Gearman共同構(gòu)建數(shù)據(jù)庫(kù)緩存,部署后在MySQL端進(jìn)行創(chuàng)建一個(gè)用戶給與遠(yuǎn)程登錄權(quán)限,使得Redis作為緩存可以用來(lái)同步數(shù)據(jù)使用,需要的朋友可以參考下2022-10-10

