Quero criar um evento que será executado todos os dias e ver se uma conta expira em breve. A soon_expires
célula será posteriormente utilizada por um script Bash que envia um e-mail ao usuário relacionado informando-o da situação.
Este é o conteúdo do meu evento (usando phpmyadmin):
SELECT * FROM users;
IF DATEDIFF(expirationtime, CURDATE()) < 45 THEN
SET soon_expires = 1;
ELSE
SET soon_expires = 0;
END IF;
No entanto, ele retorna um erro, dizendo
#1064: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'IF DATEDIFF(expirationtime, CURDATE()) < 45 THEN SET soon_expires = 1; EL' at line 3
Também tentei criar um gatilho, que funcionou conforme o esperado. Mas percebi que um gatilho será executado apenas quando a linha for atualizada - expirationtime
é mais ou menos estático, portanto, um gatilho não será suficiente.
ou
A primeira variante atualiza todos os registros na tabela, a segunda atualiza apenas os registros que serão expirados em 45 dias.