¿Cómo crear un evento mysql dentro de un procedimiento o disparador?

recientemente he estado buscando una solución para la siguiente situación:

Tengo una tabla mysql con estructura:

CREATE TABLE IF NOT EXISTS `battles` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`active` tinyint(1) NOT NULL,
`created` datetime NOT NULL,
`modified` datetime NOT NULL,
`begindate` datetime NOT NULL,
`enddate` datetime NOT NULL,
PRIMARY KEY (`id`),
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=1 ;

Cada batalla tiene fecha de inicio y finalización. La fecha de inicio es la fecha y hora de la inserción y, por lo general, la fecha de finalización es tres días después.

Me gustaría crear un evento mysql que detenga la batalla (conjuntos activos = 0) en la fecha final de la batalla. Y me gustaría que este evento se creara en el disparador de inserción en la tabla de batallas.

Hay un problema relacionado con muy pocas respuestas aqu).

Ellos aconsejan:

Debería poder hacerlo utilizando un activador y el programador de eventos:

crear un activador en la tabla que se activa en cada actualización / insercióneste disparador crea un evento programado que ocurre en la fecha y hora de la fila y actualiza> su segunda tabla

He intentado crear una consulta de este tipo pero sin éxito.

DELIMITER |
DROP TRIGGER IF EXISTS battle_create_end|
CREATE TRIGGER battle_create_end AFTER INSERT ON battles
  FOR EACH ROW BEGIN

    CREATE EVENT IF NOT EXISTS CONCAT('battle_end_',NEW.id)
    ON SCHEDULE AT NEW.enddate
    DO
    UPDATE battles SET battles.active = 0 WHERE battles.id = NEW.id;

  END|

DELIMITER ;

El error que obtengo es

1576 - La recurrencia de las declaraciones DDL de EVENT está prohibida cuando el cuerpo está presente

He intentado con diferentes delimitadores en la estructura de cada fila sin éxito tampoco.

Si alguien puede ayudar, por favor avise.

BR, Ilko

Respuestas a la pregunta(2)

Su respuesta a la pregunta