mysql 触发器 存储过程 java调用

触发器和存储过程是为了提高SQL的运行效率。

SQL语句先编译、后执行,而触发器与存储过程都会提前预编译完成,且只编译一次,供反复调用。

随着时代的进步,硬件与带宽的提升,触发器和存储过程提升效率并不明显,所以在传统或并发量低的项目中已经很少用到了。

1.触发器

  简单的作用示意:用于增删改的时候,表关联的连贯操作(具体根据需求的表设计定义)。以前会有人说可以用来做日志统计,现实开发中,其实很少有人用库表做日志。

  创建:

CREATE TRIGGER trigger_name trigger_time trigger_event ON tb_name FOR EACH ROW exesql

  注释:

  trigger_name  触发器名称

  trigger_time    触发时间,值:BEFORE、AFTER

  trigger_event  触发事件,值:INSERT、DELETE、UPDATE

  tb_name    表名称,触发器建立在哪个表的基础上

  exesql     触发器条件满足时,执行的sql或函数

  列子:

DELIMITER $$ 
drop trigger if exists ms.trigger_test;
create trigger ms.trigger_test after insert
on ms.master for each row 
begin
INSERT INTO slave (s_id, s_content) VALUES (new.m_id,new.m_content);
end
$$

   注:

   DELIMITER $$ 定义结束符$$,意味SQL语句以$$结束,mysql默认;分号结束。

扫描二维码关注公众号,回复: 3003816 查看本文章

  该脚本不可以在试图工具Navicat或dbvisual里执行。

  必须如图执行

  

猜你喜欢

转载自www.cnblogs.com/zwcry/p/9571897.html