触发器(5.0之后支持)(trigger)
定义:触发器是由事件触发某个操作.
事件包含insert,undate,delete
触发器定义:
create trigger trigger_name(对这个定义的触发器定义名字) before|after trigger_event on 表名 for each row trigger_STMT。
--trigger_name:对这个定义的触发器定义名字
--before|after:指定触发器执行的时间
--trigger_event:表示触发的事件,触发的条件包括insert,update,delete
--for each row:表示任务一条记录上的操作满足触发事件触发该触发器
--trigger_STMT:对于insert 语句,使用new;对于delete 使用old;对于update可以使用new
和old
eg: create trigger tri_insert_student after insert on student for each row update class set count=count+1 where class.id = new.class_id;
存储过程(5.0x)(procedure)
用户在实现用户的某些需求的时候,需要复杂的语句才可以实现,则我们提前编写你在数据库中
定义:是事先经过编译并存储在数据库中的一段sql语句的集合就是数据库sql语言层面的代码封装与重用.
设置存储过程
--定义存储过程 delimiter $$ create procedure 数据库名.存储过程名([in变量名 类型,out 参数 2,.....]) begin [declare 变量名 类型 [default 值];] 存储过程的语句块 end $$ delimiter --调用存储过程 call 存储过程名(参数) --输出结果 select @result