MySQL更新在预定事件内不起作用

时间:2015-10-26 20:02:19

标签: mysql sql-update mysql-event

我有一个事件在一个字段中放置NULL而不是正确的值,而一个接一个地手动运行的请求工作得很好。

该事件每10秒通过MySQL的调度程序运行。

这是我的活动代码:

BEGIN
DECLARE id INT;
DECLARE reqtype varchar(15);
SELECT t1.id into @id from ticket as t1, ticket_request as t2 , ticket_request as t3 WHERE t2.parent_request_id = t1.id and t3.id=t1.id  and t2.request_type<>t3.request_type order by t1.id desc LIMIT 1;
   IF @id > 0
   THEN
        select request_type into @reqtype from ticket_request where id=@id;
        update ticket_request as t set t.request_type=@reqtype where t.parent_request_id=@id;
   END IF;
END

现在,这些请求单独提供:

SELECT t1.id from ticket as t1, ticket_request as t2 , ticket_request as t3 WHERE t2.parent_request_id = t1.id and t3.id=t1.id  and t2.request_type<>t3.request_type order by t1.id desc LIMIT 1;

输出3118

select request_type from ticket_request where id=3118;

输出service_request。和...

update ticket_request as t set t.request_type='service_request' where t.parent_request_id=3318;

给出了理想的结果。子项的请求类型将使用父项更新。

当遇到一个事件时,一切正常,但更新在我的t.request_type中放置了一个NULL。正确的孩子会更新,只有那个...所以我知道更新正在运行,至少是部分。

以下是

之前的数据
id      request_type        parent_request_id
3118    service_request     null
4556    incident            3118

我想在

之后看到的那个
id      request_type        parent_request_id
3118    service_request     null
4556    service_request     3118

任何人都知道出了什么问题?

0 个答案:

没有答案