- 触发器是与表有关的数据库对象, 指在 insert/update/delete 之前或之后, 出发并执行触发器中定义的 SQL 语句集合
- 触发器的这种特性可以协助应用在数据库端确保数据的完整性, 日志记录, 数据校验等操作
- 用别名以引用记录
- 触发器只支持行级触发器, 不支持语句级触发器
- 语法
- create trigger 名称
- before/after insert/update/delete
- on 表明
- for each row
- begin
- 代码
- end;
use `java_basic`;
drop table if exists `student_log`;
create table if not exists `student_log`
(
`id` int auto_increment primary key not null comment '编号',
`operation` varchar(8) not null comment '操作类型(insert/update/delete)',
`operate_id` int not null comment '操作记录编号',
`operate_time` datetime default now() not null comment '操作时间'
);
truncate table `student_log`;
drop trigger if exists `student_add_trigger`;
create trigger student_add_trigger
after insert
on `student`
for each row
begin
insert into `student_log` (`operation`, `operate_id`) value ('insert', new.id);
end;
show triggers;
call add_student(10);
select *
from `student_log`;