Skip to content

Latest commit

 

History

History
50 lines (41 loc) · 1.32 KB

11-触发器.md

File metadata and controls

50 lines (41 loc) · 1.32 KB

触发器


介绍

  • 触发器是与表有关的数据库对象, 指在 insert/update/delete 之前或之后, 出发并执行触发器中定义的 SQL 语句集合
  • 触发器的这种特性可以协助应用在数据库端确保数据的完整性, 日志记录, 数据校验等操作
  • 用别名以引用记录
    • old
    • new
  • 触发器只支持行级触发器, 不支持语句级触发器
  • 语法
    • 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`;