篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sql Eventos en MariaDB相关的知识,希望对你有一定的参考价值。
// Asegurarnos de que podemos ejecutar los eventos en nuestra Base de Datos
SET GLOBAL event_scheduler = ON;
CREATE
EVENT
IF NOT EXISTS `add_attendance` -- solo si no existe un evento con el mismo nombre creado.
ON SCHEDULE
EVERY 1 DAY_MINUTE -- cada minuto
COMMENT 'Add attendance script' -- comentario del evento
DO
INSERT INTO tahaddi_v4.th_attendance
(id, date_register, class_id, student_id, event_state_ct, description, period_id)
VALUES(UUID(), CURRENT_TIMESTAMP, '3f63a040-8e12-11e9-a074-b331b4c0ccd4', '2bcfa340-8baa-11e9-8890-57f7c78dbd77', 5, '', '');
-- Muestra los eventos asociados a esa Base de Datos
SHOW EVENTS FROM tahaddi_v4;
-- Muestra el evento con el nombre 'add_attendance'
SHOW CREATE EVENT add_attendance;
CREATE PROCEDURE create_attendance() -- nombre de procedimiento
BEGIN
DECLARE done INT DEFAULT FALSE; -- variable para determinar si acabo o no
DECLARE v_class_id varchar(255); -- variable A
DECLARE v_student_id varchar(255); -- variable B
DECLARE cur1 CURSOR FOR SELECT class_id, student_id FROM th_class_student ORDER BY class_id LIMIT 10; -- obteniendo en un cursor los datos de mi select
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE; -- verificando si en el siguiente index, existe algo.
OPEN cur1; -- abriendo el cursor
read_loop: LOOP -- bucle
FETCH cur1 INTO v_class_id, v_student_id; -- de mi cursor lo datos lo pongo en mis variables declaradas
IF done THEN
LEAVE read_loop; -- si es true, se sale del bucle
END IF;
INSERT INTO th_attendance
(id, date_register, class_id, student_id, event_state_ct, description, period_id)
VALUES(UUID(), CURRENT_TIMESTAMP, v_class_id, v_student_id, 5, '', '');
END LOOP;
CLOSE cur1; -- cerrando el puntero
END;
-- llamando al procedimiento
CALL create_attendance;
DELIMITER //
CREATE PROCEDURE validate_class_control(
IN CLASSID varchar(50),
IN EVENTSTATUSCT INT)
BEGIN
DECLARE X INT DEFAULT 0;
SELECT 1
INTO X
FROM th_class_control
WHERE date = CURRENT_DATE AND state_ct = 1 AND class_id = CLASSID;
IF X <> 1 THEN
call create_attendance(CLASSID, EVENTSTATUSCT);
END IF;
END;
DELIMITER ;
SELECT DISTINCT class_id, student_id FROM th_class_student
select * from th_class_control where class_id = '54325210-b788-11e9-b65a-d7ad8164f667';
call validate_class_control('54325210-b788-11e9-b65a-d7ad8164f667', 5)
以上是关于sql Eventos en MariaDB的主要内容,如果未能解决你的问题,请参考以下文章