-
六、触发器
1、介绍
2、语法
- 创建
- 查看
- 删除
案例
--插入数据触发器
create trigger tb_user_insert_trigger
after insert on tb_user for each row
begin
insert 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;
--删除指定触发器
drop trigger tb_user_insert_trigger;
--修改数据触发器
create trigger tb_user_update_trigger
after update on tb_user for each row
begin
insert 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;
update tb_user set where id =23;
--删除数据触发器
create trigger tb_user_delete_trigger
after delete on tb_user for each row
begin
insert 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;
总结
七、锁
1、概述
2、分类
3、全局锁
- 介绍
- 演示
(1)加锁
(2)加锁之后,只能读不能写
(3)数据备份
不可以在MySQL命令行执行
直接在Windows命令行执行
释放锁
- 特点
4、表级锁
- 介绍
- 表锁
- 演示(读锁)
(1)加锁,不会组织客户端读取
(2)加锁之后,所有客户端均无法进行写入操作
(3)释放表锁
- 演示(写锁)
(1)加锁,不会阻止本客户端读写
(2)加锁之后,其他客户端无法读写
- 元数据锁(meta data lock,MDL)
- 演示
(1)加锁
(2)事务为提交,无法修改表结构
- 意向锁
- 演示