sql Eventos en MariaDB

Posted

tags:

篇首语:本文由小常识网(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的主要内容,如果未能解决你的问题,请参考以下文章

sql Selecionar eventos ocorridos entre 2 datas

MariaDB、Workbench 和 ON DELETE SET DEFAULT

javascript Enlazando eventos del DOM

markdown Eventos de Scrum

markdown 事件绑定(Binding de Eventos)

markdown Eventos调整大小,scroll.md