MySQL触发器

9.4 MySQL触发器
触发器在数据库系统开发过程中具有非常重要的作用,例如可以防止有害数据录入数据库,可以改变或取消 insert、update和delete语句的执行及在一个会话中监听数据库中的数据的改变。
实例263:创建触发器
这是一个创建触发器的实例
录像位置:光盘\mingrisoft\09\263
实例说明
如果用户打算在数据库中通过触发器实现某一动作的监听,那么首先应该创建触发器,触发器是在“命令提示符”下创 建的,如图9.16所示。
MySQL触发器
图9.16 触发器创建过程
技术要点
MySQL数据库创建触发器的格式如下:
create trigger <触发器名称>

{ before | after}

{insert | update | delete}

on <表名>

for each row

<触发器SQL语句>


create trigger <触发器名称>:创建一个新触发器,并指定触发器的名称。
{ before | after}:用于指定在insert、update或delete语句执行前触发还是在语句执行后触发。
on <表名>:用于指定响应该触发器的表名。
for each row:触发器的执行间隔,for each row 通知触发器每隔一行执行一次动作,而不是对整个表执行一次。
<触发器SQL语句>:触发器要执行的SQL语句,如果该触发器要执行多 条SQL语句,要将多条语句放在begin…end块中。

实现过程
(1)在“命令提示符”下创建数据表tb_test。代码如下:
create table tb_test(t_id varchar(20),t_name varchar(20)) 


(2)将换行标记转换为“//”。代码如下:

delimiter // 


(3)创建触发器,实现无论用户向表tb_test添加什么数据都使字段t_name的内容为“mrsoft”。代码如下:

create trigger test_tri

before insert on tb_test

for each row

set new.t_name='mrsoft'


(4)向表tb_test添加一条记录,并查看添加后的结果。代码如下:

insert into tb_test(t_id,t_name) values('mr0001', '123')//

select * from tb_test


举一反三

根据本实例,读者可以:
为某表创建触发器,要求在更新数据前触发。
为某表创建触发器,要求在删 除数据前触发

你可能感兴趣的:(sql,mysql)