时间:2021-07-01 10:21:17 帮助过:50人阅读
Mysql那些事儿之(十)触发器
相关链接:
Mysql那些事儿之(一)mysql的安装
http:///database/201210/162314.html;
Mysql那些事儿之(二)有关数据库的操作
http:///database/201210/162315.html;
Mysql那些事儿之(三)有关数据表的操作
http:///database/201210/162316.html;
Mysql那些事儿之(四)数据表数据查询操作
http:///database/201210/162317.html;
Mysql那些事儿之(五)操作时间
http:///database/201210/162318.html;
Mysql那些事儿之(六)字符串模式匹配
http:///database/201210/163969.html;
Mysql那些事儿之(七)深入select查询
http:///database/201210/163970.html;
Mysql那些事儿之(八)索引
http:///database/201210/163971.html;
Mysql那些事儿之(九)常用的函数
http:///database/201210/164229.html
mysql从5.0.2版本开始支持触发器的功能。
触发器是什么?触发器就是与表有关的数据库对象,在满足定义的条件时触发,并且执行触发器中定义的语句。
我们来看一下触发器的语法结构:
Sql代码
create trigger trigger_name trigger_time trigger_event
on table_name
for each row
begin
trigger_stmt
end;
trigger_name是说明触发器的名称;
trigger_time是说明触发器的时间,after、before;
trigger_event是说明触发器的事件,比如delete、update、insert;
trigger_stmt是说明触发器要执行的事物语句,也就是你要干什么的东西,写在这里。
举例:
建立数据库:
Sql代码
create database db_test;
建立film表:
Sql代码
create table film(
id smallint unsigned not null,
name varchar(40),
txt text,
primary key(id)
);
在这儿写一个简单的触发器示例:
业务规则是 在向film表插入数据时,同时向日志表film_text中也插入一条数据.
当然还得建立film_text表:
Sql代码
create table film_text(
id smallint unsigned not null auto_increment,
name varchar(40),
txt text,
primary key(id)
);
现在可以按照触发器的语法结构来写触发器了。
触发器代码:
Sql代码
create trigger trigger_film --trigger_film为触发器的名称
after --after为触发器要发生的时间
insert --insert为触发器发生时的条件 插入操作
on film --建立触发器的表名
for each row --说明触发器为行级触发器
begin
--触发器要执行的逻辑
insert into film_text(id,name,txt) values(new.id,new.name,new.txt);
end;
运行完这个触发器之后,当在另一个film表里插入数据后,film_text里也将增加一条数据。
bitsCN.com