mysql触发器_begin end 执行多次语句

//多SQL中导出的触发器语句:
DROP TRIGGER IF EXISTS `t_trig`;
DELIMITER //
CREATE TRIGGER `t_trig` BEFORE INSERT ON `t_goods`
 FOR EACH ROW beginset NEW.add_date = current_date();INSERT INTO test2 SET a2 = NEW.id;end
//
DELIMITER ;

/************************************************
 ************************************************
 ************************************************/
//在删除一个终端调研时触发删除销售体验和竞品分析
DELIMITER //
CREATE TRIGGER	`delete_assistant_research` BEFORE DELETE ON `tb_assistant_research`
FOR EACH ROW begin
DELETE FROM `tb_assistant_experience` WHERE `research_id` = old.id;
DELETE FROM `tb_assistant_compete_analyse` WHERE `research_id` = old.id;
end
//
DELIMITER;

/************************************************
 ************************************************
 ************************************************/
//在删除一个竞品商品时, 删除该竞品商品的竞品分析数据
DELIMITER
CREATE TRIGGER `delete_product` AFTER DELETE ON	`tb_assistant_compete_product`
FOR EACH ROW begin
DELETE FROM `tb_assistant_compete_analyse` WHERE `product_id` = old.id;
end
DELIMITER;

/************************************************
 ************************************************
 ************************************************/
//在删除某一家门店时,删除该门店的巡店和终端调研
//本地服务器118所需要的触发器语句
DROP TRIGGER IF EXISTS `delete_assistant_store`;
DELIMITER //
CREATE TRIGGER	`delete_assistant_store` AFTER DELETE ON `tb_assistant_store`
FOR EACH ROW begin
DELETE FROM `tb_assistant_visitstore` WHERE `store_id` = old.id;
DELETE FROM `tb_assistant_research` WHERE `store_id` = old.id;
end
//
DELIMITER;

远程服务器:121.199.167.212所导出的触发器
DROP TRIGGER IF EXISTS `delete_assistant_store`//
CREATE TRIGGER `delete_assistant_store` AFTER DELETE ON `tb_assistant_store`
 FOR EACH ROW begin
DELETE FROM `tb_assistant_visitstore` WHERE `store_id` = old.id;
DELETE FROM `tb_assistant_research` WHERE `store_id` = old.id;
end
//

/************************************************
 ************************************************
 ************************************************/
在删除某一个流程时,需要删除对应该流程的备注信息
sign=1删除巡店 sign=2删除销售体验 sign=3删除竞品分析

//以后用标准格式
DROP TRIGGER IF EXISTS `delete_assistant_option`;
delimiter //
CREATE TRIGGER	`delete_assistant_option` AFTER DELETE ON `tb_assistant_option`
FOR EACH ROW BEGIN

IF old.sign=1 THEN
  DELETE FROM `tb_assistant_visitstore_message` WHERE `option_id` = old.id;
ELSEIF old.sign=2 THEN
  DELETE FROM `tb_assistant_experience_message` WHERE `option_id` = old.id;
ELSEIF old.sign=3 THEN
  DELETE FROM `tb_assistant_compete_analyse_message` WHERE `option_id` = old.id;
END IF;

END;
//
delimiter ;

标准格式,版主给的
delimiter //
CREATE TRIGGER testref BEFORE INSERT ON test1
  FOR EACH ROW BEGIN
    INSERT INTO test2 SET a2 = NEW.a1;
    DELETE FROM test3 WHERE a3 = NEW.a1;
    UPDATE test4 SET b4 = b4 + 1 WHERE a4 = NEW.a1;
  END;
//
delimiter ;

  

mysql触发器_begin end 执行多次语句

时间: 2024-10-12 11:48:50

mysql触发器_begin end 执行多次语句的相关文章

MySQL存储过程中实现执行动态SQL语句

sql语句中的任何部分都可以作为参数. DROP PROCEDURE if exists insertdata; delimiter //CREATE PROCEDURE insertdata(IN table_name varchar(255))begin declare var_sql varchar(800); set var_sql = concat_ws(' ', 'select count(*) from ', table_name,' where c_purchase_id is

MySql触发器使用讲解

林炳文Evankaka原创作品.转载请注明出处http://blog.csdn.net/evankaka 触发器(TRIGGER)是由事件来触发某个操作.这些事件包括INSERT语句.UPDATE语句和DELETE语句.当数据库系统执行这些事件时,就会激活触发器执行相应的操作.MySQL从5.0.2版本开始支持触发器.在本文中将讲解的内容包括:触发器的含义和作用如何创建触发器如何查看触发器如何删除触发器 触发器是由INSERT.UPDATE和DELETE等事件来触发某种特定操作.满足触发器的触发

【转】mysql触发器的实战(触发器执行失败,sql会回滚吗)

1   引言 Mysql的触发器和存储过程一样,都是嵌入到mysql的一段程序.触发器是mysql5新增的功能,目前线上凤巢系统.北斗系统以及哥伦布系统使用的数据库均是mysql5.0.45版本,很多程序比如fc-star管理端,sfrd(das),dorado都会用到触发器程序,实现对于数据库增.删.改引起事件的关联操作.本文介绍了触发器的类型和基本使用方法,讲述了触发器使用中容易产生的误区,从mysql源码中得到触发器执行顺序的结论,本文最后是实战遭遇的触发器经典案例.没有特殊说明时,本文的

mysql执行insert等语句报1205 Lock wait timeout exceeded try restarting transaction

mysql执行insert等语句是报如下错误: 1205 Lock wait timeout exceeded try restarting transaction 解决办法如下: 方法一:查看当前线程,是否有存在正在执行的你相关的语句,将其KILL  show processlist;  kill pid 方法二(方法一不行再执行):重启mysql数据库  service mysqld restart 注意:重启mysql会将在执行的线程全部kill

监控mysql执行的sql语句

linux平台 为了做好配合开发做性能和功能测试,方便监控正在执行的sql语句,可以在/etc/mysqld中添加如下: log =/usr/local/mysql/var21005/mysql.log 就可以使用: tail -f mysql.log 来监控了  www.xxx.com 如果需要监控慢查询可以添加如下内容: log-slow-queries = /usr/local/mysql/var21005/slowquery.log long_query_time = 1 windows

MySql使用show processlist查看正在执行的Sql语句

今天上班例行的查看了下服务器的运行状况,发现服务器特卡,是mysqld这个进程占用CPU到了99%导致的. 比较好奇是那个程序在使用mysql导致cpu这么高的,通过show processlist命令查看了当前正在执行的sql语句,从而定位到了对应的程序,发现代码中有一个死循环在不停的查询导致cpu占用99%,原因找到了问题就好解决了. 这里简单的记录一下processlist的用法: processlist 命令的输出结果显示了有哪些线程在运行,可以帮助识别出有问题的查询语句,两种方式使用这

mysql五补充部分:SQL逻辑查询语句执行顺序

阅读目录 一 SELECT语句关键字的定义顺序 二 SELECT语句关键字的执行顺序 三 准备表和数据 四 准备SQL逻辑查询测试语句 五 执行顺序分析 一 SELECT语句关键字的定义顺序 SELECT DISTINCT <select_list> FROM <left_table> <join_type> JOIN <right_table> ON <join_condition> WHERE <where_condition>

mysql第四篇--SQL逻辑查询语句执行顺序

mysql第四篇--SQL逻辑查询语句执行顺序 一.SQL语句定义顺序 SELECT DISTINCT <select_list> FROM <left_table> <join_type> JOIN <right_table> ON <join_condition> WHERE <where_condition> GROUP BY <group_by_list> HAVING <having_condition&g

查看Mysql实时执行的Sql语句

最近给客户开发了基于Asp.Net mvc5 +Mysql+EF的项目,但是在EF里无法看到Mysql执行的语句 之前也找到一些监控Mysql的软件但一直没有用起来,现在又遇到了问题即在EF里Mysal的查询没有结果而在Mysql里没有问题 因为不知道EF生成的Mysql语句所以不知道是不是Sql的问题于是决定必须解决此问题 通过半天时间的努力解决了此问题,其实很简单即开启Mysql的Log功能,那么Mysql的执行语句都会写到Log文件里 然后通过BareTail这个专门查看Log文件的工具即