MySQL触发器

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

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

你可能感兴趣的:(数据库,mysql,触发器,职场,休闲)