首页 > 数据库 > MySQL > mysql 触发器学习
1. 一个简单的例子
1.1. 创建表:
1.2. 触发器:
delimiter |create trigger t_trigger
before insert on t for each
rowbegin set
@x = "hello
trigger"; set
NEW.s1 = 55;end;| |
1.3. 如果触发器创建错误,可能只能删除了,至少我试过不能replace
1.4. 当执行insert 时:
1.5. 会执行触发器t_trigger
1.6. 可以看到结果:

1.7可以使用
2. url查询哈希值的维护 触发器

2.2 创建触发器,当对表进行插入和更新时,触发 触发器
delimiter |
create trigger pseudohash_crc_ins before insert on pseudohash for each row
begin set @x = "hello trigger";
set NEW.url_crc=crc32(NEW.url);
end;
|
create trigger pseudohash_crc_upd before update on pseudohash for each row
begin set @x = "hello trigger";
set NEW.url_crc=crc32(NEW.url);
end;
|
delimiter ;
2.3 插入操作

----------------------------------------------------------------------------
CREATE TABLE `urls` (
`url` varchar(255) DEFAULT NULL,
`url_crc` int(11) DEFAULT '0',
KEY `url` (`url`) USING HASH
) ENGINE=MEMORY DEFAULT CHARSET=utf8;

3. 触发器 语法
ON tbl_name FOR EACH ROW trigger_stmt
trigger_time是触发程序的动作时间。它可以是BEFORE或AFTERtrigger_event指明了激活触发程序的语句的类型。trigger_event可以是下述值之一:
· INSERT:将新行插入表时激活触发程序,例如,通过INSERT、LOAD DATA和REPLACE语句。
· UPDATE:更改某一行时激活触发程序,例如,通过UPDATE语句。
· DELETE:从表中删除某一行时激活触发程序,例如,通过DELETE和REPLACE语句。
3.2 可能遇到的问题
(允许存储程序通过参数将数据返回触发程序)。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/23593312/viewspace-1114585/ ,如需转载,请注明出处,否则将追究法律责任。