Gostaria de saber se no MySQL é possível eu alterar uma chave de um registro com base em uma data.
Tenho as chaves DATA_INICIAL, DATA_FINAL, DATA_CHEGADA e STATUS em uma tabela.
Gostaria de alterar o conteúdo do STATUS com base nos campos de data:
Se DATA_CHEGADA vier depois de DATA_FINAL: STATUS = “EM ATRASO”;
Se DATA_CHEGADA vier antes de DATA_FINAL: STATUS = “NO PRAZO”;
Não sei se convém fazer isso no banco (se for possível) ou no programa Java.
Não sei qual seria mais viável.
Minha ideia posteriormente seria montar um sistema que envie e-mails diariamente com base no campo status. Por isso, acho que se desse pra fazer direto no banco, seria o ideal.
Mas caso não dê, podem me dar alguma ideia de como implementar isso em Java.
Agradeço!
O melhor seria implementar isso no java, se você fizer a migração de banco corre o risco de esquecer essa função.
No java basta trabalhar com o quartz, ele ja vai executar oque quer de tempos em tempos e enviar os emails, caso queira.
F
fabiio2
Campelo, mas é possível fazer isso usando aplicação desktop?
E se o servidor não ficar online todo o tempo?
Rodrigomarden1 like
Da pra fazer isso no banco sim, basta apenas você executar um UPDATE com uma condição WHERE entre as datas.
UPDATE tablename SET status = ‘EM ATRASO’ WHERE DATA_CHEGADA > DATA_FINAL
UPDATE tablename SET status = ‘NO PRAZO’ WHERE DATA_CHEGADA < DATA_FINAL
Acho que isso vai funcionar.
campelo.m
Sim, da pra usar o quartz em ambiente desktop.
Mesmo que o server seja desligado, quando ele ligar e subir a aplicação sera executado as funções definidas.
campelo.m
Não disse que não era possível fazer no banco, o melhor sempre é cada um ter a sua responsabilidade.
Em caso de migração, tem que fazer a mesma coisa no outro banco.(passivel de esquecimento).
Algum dia pode-se mudar a regra e o cara que fez isso no banco não esta mais na empresa.
Conforme foi dito, é necessário enviar um e-mail avisando sobre o status.
F
fabiio2
Obrigado Rodrigo, mas a questão é o agendamento.
Isso tem que ser feito diariamente.
F
fabiio2
Campelo, pelo que andei pesquisando, o quartz é uma biblioteca externa do Java.
Mas a maioria aponta para aplicações web.
Teria algum material para me indicar sobre a aplicação dele em desktop?
E no caso, sua sugestão seria usá-lo para fazer o update diário no registro do banco né?
Solucao aceita
campelo.m1 like
Sim, mas basta voce add o jar no seu projeto independentemente se é web ou desktop .