触发器(trigger):监视某种情况,并触发某种操作。
触发器创建语法四要素:1.监视地点(table)
2.监视事件(insert/update/delete)
4.触发事件(insert/update/delete)
语法:
create trigger triggerName
after/before insert/update/delete on 表名
for each row #这句话在mysql是固定的
begin
sql语句;
end;
例如:现在有张学生表student,有张班级stu_class表
student: sid int primary key auto_crement
stu_name varchar(10)
cid int
stu_class:cid int primary key auto_crement
class _num varchar(20)
stu_count int
假设一种场景
新增一个学生时 对应班级的人数应该加一
顺便 说下:
delimiter $ //此处是申明mysql语句是以”
”结尾,当我们在java程序上使用时无需加此处createtriggertg1afterinsertonstudentforeachrow//此处是必须格式beginupdatestuclasssetstucount=stucount+1wherecid=new.cidend
(在此处引用新添的数据属性时,用new.属性应用,再删除时引用用old.)
create trigger tg2
after delete on student
for each row
begin
update stu_class set set_count = stu_count-1 where cid = old.cid
end$
作为一种简单讲解,欢迎大家指教讲解!