北京定制网站价格,wordpress上传pdf文档,公司做铸造的招聘网站都有哪些,wordpress 搜索引擎ping触发器介绍
– 触发器是与表有关的数据库对象#xff0c;指在insert/update/delete之前(BEFORE)或之后(AFTER)#xff0c;触发并执行触发器中定义的SQL语句集合。 – 使用别名OLD和NEW来引用触发器中发生变化的记录内容#xff0c;这与其他的数据库是相似的。现在触发器还只…触发器介绍
– 触发器是与表有关的数据库对象指在insert/update/delete之前(BEFORE)或之后(AFTER)触发并执行触发器中定义的SQL语句集合。 – 使用别名OLD和NEW来引用触发器中发生变化的记录内容这与其他的数据库是相似的。现在触发器还只支持行级触发不支持语句级触发。
触发器类别
– INSERT 型触发器 NEW 表示将要或者已经新增的数据 – UPDATE 型触发器 OLD 表示修改之前的数据 , NEW 表示将要或已经修改后的数据 – DELETE 型触发器 OLD 表示将要或者已经删除的数据
开始实例演示
准备工作 : 日志表 user_logs
create table user_logs(id int(11) not null auto_increment,operation varchar(20) not null comment 操作类型, insert/update/delete,operate_time datetime not null comment 操作时间,operate_id int(11) not null comment 操作的ID,operate_params varchar(500) comment 操作参数,primary key(id)
)engineinnodb default charsetutf8;A. 插入数据触发器
create trigger tb_user_insert_triggerafter insert on tb_user for each row
begininsert into user_logs(id, operation, operate_time, operate_id, operate_params)
VALUES(null, insert, now(), new.id, concat(插入的数据内容为:id,new.id,,name,new.name, , phone, NEW.phone,, email, NEW.email, ,profession, NEW.profession));
end;-- 查看
show triggers ;
-- 插入数据到tb_user
insert into tb_user(id, name, phone, email, profession, age, gender, status,createtime)
VALUES (26,三皇子,18809091212,erhuangzi163.com,软件工程,23,1,1,now());B. 修改数据触发器
create trigger tb_user_update_triggerafter update on tb_user for each row
begininsert into user_logs(id, operation, operate_time, operate_id, operate_params)
VALUES(null, update, now(), new.id,concat(更新之前的数据: id,old.id,,name,old.name, , phone,old.phone, , email, old.email, , profession, old.profession, | 更新之后的数据: id,new.id,,name,new.name, , phone,NEW.phone, , email, NEW.email, , profession, NEW.profession));
end;-- 查看
show triggers ;
-- 更新
update tb_user set profession 会计 where id 23;
update tb_user set profession 会计 where id 5;C. 删除数据触发器
create trigger tb_user_delete_triggerafter delete on tb_user for each row
begininsert into user_logs(id, operation, operate_time, operate_id, operate_params)
VALUES(null, delete, now(), old.id,concat(删除之前的数据: id,old.id,,name,old.name, , phone,old.phone, , email, old.email, , profession, old.profession));
end;-- 查看
show triggers ;
-- 删除数据
delete from tb_user where id 26;最后
触发器Trigger是一种特殊的存储过程它在指定的数据库表上发生特定的事件如INSERT、UPDATE、DELETE时自动执行。 触发器并不是一个“槽”或“接收器”而是更类似于一个自动执行的程序它在数据库层面上监控和响应数据的变化。