i am running mysql 5.1.41
that came bundled with xampp
on windows. the problem is that the event doesnt run automatically even when the event scheduler
is ON
. i have a table named ta_table
using innodb engine
and it has 4 fields one of which is ti_time
with a timestamp
type with default value of current timestamp
. this field ti_time
is given the value of timestamp at which the row is inserted. now i want to delete all rows which are 2 hours old from the table ta_table
so i created an event
the event looks like this
CREATE EVENT ev ON SCHEDULE EVERY 1 MINUTE STARTS 2011-07-17 14:54:52 ENABLE
DO
begin
delete from ta_table where timestampdiff(minute,ti_time,now())>120;
end
now this event should delete any rows with ti_time
field greater than 2 hours(120 minutes). when i execute this query
delete from ta_table where timestampdiff(minute,ti_time,now())>120;
it works. it deletes the rows older than 2 hours. which means my query is correct but the event is not running. my event scheduler is running which i confirmed by show processlist
and it shows 2 preocesses root and event scheduler.
the state
of the event scheduler is waiting for next activation
.
when i ran this query
SELECT * FROM INFORMATION_SCHEMA.EVENTS WHERE event_name = 'ev'
it gives result as
status = enabled
last executed=2011-07-18 02:36:38
but when i see the table ta_table
the records are not deleted? whats wrong with this?
Edit:
As of RolandoMySQLDBA's suggestion i upgraded mysql 5.1.14 to mysql 5.5 but the event still fails
retcode=0
delete from ta_table
. thanks for pointing out