遇到一mysql触发器的离奇现象,求解!
DELIMITER $$
CREATE
TRIGGER `productTrigger` AFTER INSERT ON `product`
FOR EACH ROW BEGIN
declare bookingtime varchar(15);
declare firstcomma int(2);
declare secondcomma int(2);
declare tmp varchar(500);
declare newcontent varchar(500);
declare i int(2) DEFAULT 1;
declare tmpIndex int(2);
declare param varchar(50);
declare judge BOOLEAN DEFAULT true;
declare required0 varchar(10);
declare required1 varchar(10);
declare codebaseCount int(1) DEFAULT 0;
set newcontent = concat(new.content,'&');
set firstcomma = LOCATE(',', newcontent);
set secondcomma = LOCATE(',', newcontent, firstcomma+1);
if firstcomma > 0 and secondcomma >0 then
set bookingtime = SUBSTRING(newcontent, 1, firstcomma-1);
set tmp = SUBSTRING(newcontent, secondcomma+1);
while (i>1 or judge) do
set tmpIndex = LOCATE('&', tmp, i);
set param = SUBSTRING(tmp, i, tmpIndex-i);
if(LOCATE('required0=',param)>0) then
set required0 = SUBSTRING(param, LOCATE('=',param)+1);
elseif(LOCATE('required1=',param)>0) then
set required1 = SUBSTRING(param, LOCATE('=',param)+1);
end if;
set i = tmpIndex+1;
set judge = false;
end while;
if length(required0)>0 then
select count(*) into codebaseCount from test where `required0`=required0;
if codebaseCount = 1 then
insert into infonew (`required0`,`required1`,`TIMESTAMP`) values (required0,required1,bookingtime);
end if;
end if;
end if;
END;
$$
DELIMITER ;
只要是对字段进行一些字符串的拆分,然后将拆分内容插入到另外的一个表里。
现在的情况是,我一旦建立了这个trigger,product表的数据会被不停的重复插入,注意是product表,不是infonew这个表,而且是mysql自己在不停的插入,哪位神仙遇到过这种情况呀!
相关推荐
MySQL触发器简单用法示例
主要介绍了MySQL触发器简单用法,结合实例形式分析了mysql触发器的创建、执行、查看、删除等相关操作技巧,需要的朋友可以参考下
mysql触发器之触发器的增删改查操作示例
主要介绍了mysql触发器之触发器的增删改查操作,结合实例形式分析了mysql触发器的定义及使用触发器进行增删改查等相关操作技巧,需要的朋友可以参考下
MySQL 触发器详解及简单实例
MySQL 触发器简单实例 语法 CREATE TRIGGER <触发器名称> –触发器必须有名字,最多64个字符,可能后面会附有分隔符.它和MySQL中其他对象的命名方式基本相象. { BEFORE | AFTER } –触发器有执行的时间设置:可以设置为事件发生前或后。 { INSERT | UPDATE | DELETE } –同样也能设定触发的事件:它们可以在执行insert、update或delete的过程中触发。 ON <表名称> –触发器是属于某一个表的:当在这个表上执行插入、 更新或删除操作的时候就导致触发器的激活. 我们不能给同一张表的同一个事件安排两个触发器
MySQL触发器代码
MySQL创建数据库触发器的代码程序,可以帮助你了解触发器的功能以及实现,是很好的触发器教程
mysql触发器之创建多个触发器操作实例分析
本文实例讲述了mysql触发器之创建多个触发器操作。分享给大家供大家参考,具体如下: 这次记录的内容mysql 版本必须得是5.7.2+的哈,之前的会不好使的。废话不多说,咱们开始正文哈。 在mysql 5.7.2+版本之前,我们只能为表中的事件创建一个触发器,例如,只能为BEFORE UPDATE或AFTER UPDATE事件创建一个触发器。 mysql 5.7.2+版本解决了这样限制,并允许我们为表中的相同事件和动作时间创建多个触发器。当事件发生时,触发器将依次激活。我们来参考创建第一个触发器中的语法。如果表中有相同事件有多个触发器,mysql 将按照创建的顺序调用触发器。要更改触发器的顺


