essas são as colunas da tabela, agora minha dúvida é…
Como faço para em min em min rodar algum serviço para colocar a flag “excluido = 1” no banco de dados caso aquele determinado registro já tenha completado 24Hrs ?
Estou bem perdido, utilizo php com mysql, tem alguma forma para resolver isso ? um job ou algo que fique executando ? ou alguma outra maneira que desconheço ?
agradeço desde já a todos
EDIT:
Um amigo meu tentou me ajudar e fizemos este código, só que não consigo executar no localhost.
DELIMITER $$
CREATE PROCEDURE excluirPost()
BEGIN
DECLARE done INT DEFAULT FALSE;
DECLARE INDICE INT;
DECLARE cur1 CURSOR FOR SELECT COD_POST, DATA_INCLUSAO FROM iroyale.post where Date > DATE_SUB(CURDATE(),INTERVAL 24 HOUR);
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;
OPEN cur1;
read_loop: LOOP
FETCH cur1 INTO INDICE;
IF done THEN
LEAVE read_loop;
END IF;
UPDATE IROYALE.POST.EXCLUIDO = 1 WHERE IROYALE.POST.COD_POST = INDICE;
END LOOP;
CLOSE cur1;
END;
DELIMITER
CREATE DEFINER=root@% EVENT ExcluirPost
ON SCHEDULE
EVERY 1 DAY STARTS '2018-12-20’
ON COMPLETION NOT PRESERVE
ENABLE
COMMENT ''
DO UPDATE POST SET excluido = 1 WHERE data_inclusao < now() - INTERVAL 1 DAY;
@shuttner, obrigado por tentar me ajudar, está dando este erro, não manjo muito de sql, as está dando este erro e a pergunta também é…
como faz para ele ficar executando a cada 1 min ?
DELIMITER $$
CREATE EVENT `excluir_posts`
ON SCHEDULE
EVERY 1 DAY
STARTS '2018-12-21 20:00:00'
ON COMPLETION PRESERVE ENABLE
DO
UPDATE POST SET excluido = 1 WHERE data_inclusao < now();
$$
DELIMITER ;
@rodriguesabner, não sabia que tinha uma interface ^^
mas acho que ajuda bastante, agora só me ajuda em uma coisa (sou burro em sql).
ai vai criar um “job” para excluir um registro na base de dados caso ele complete 24Hrs de publicado correto? Agora á pergunta é… como ele irá saber que o registro tem 24Hrs de publicado já ? onde e como faço isso ?
Acredite… Estou perdido em mysql
acho que entendi, então no caso esse event já pega a data e verifica internamente se está publicado faz 24hrs correto ? E se tiver 24Hrs ele seta como 1 o campo excluido certo ?
neste caso a coluna de data_inclusao terá que ser datetime ?
certo, então caso o registro que está no banco tenha fechado 24hrs de postado ele “exclui”.
algo simples pelo visto via interface e eu aqui que nem doido ^^ obrigado amigo