MySQL触发器

触发器


触发程序是与表有关的命名数据库对象,当表上出现特定事件时,将激活该对象。触发程序与命名为 tbl_name的表相关。
tbl_name必须引用永久性表。不能将触发程序与TEMPORARY表或视图关联起来。

trigger_time是触发程序的动作时间。它可以是BEFORE或AFTER,以指明触发程序是在激活它的语句之前或之后触发。
trigger_event指明了激活触发程序的语句的类型。
trigger_event可以是下述值之一:
INSERT:将新行插入表时激活触发程序,例如,通过INSERT、LOAD DATA和REPLACE语句;
UPDATE:更改某一行时激活触发程序,例如,通过UPDATE语句;
DELETE:从表中删除某一行时激活触发程序,例如,通过DELETE和REPLACE语句。

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

INSERT INTO test4 (a4) VALUES 
  (0), (0), (0), (0), (0), (0), (0), (0), (0), (0);


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值