Se connecter / S'enregistrer
Votre question

Modification automatique d'une BDD

Tags :
  • Mise à jour
  • Programmation
Dernière réponse : dans Programmation
20 Août 2010 18:23:57

Bonjour,
Je voudrais pouvoir augmenter chaque heures un champs d'un table d'une BDD.

Exemple : J'ai un champs "points" et je voudrais que toutes les heures, ce champs augmente de +5 !

Merci d'avance pour vos réponse :) 

Autres pages sur : modification automatique bdd

20 Août 2010 18:43:37

Bonjour Dagobah,

Je vois trois solutions pour faire ça :

- Avec le planificateur de tâches de ton SGBD, par exemple si tu utilises MySQL : http://dev.mysql.com/doc/refman/5.1/en/events-overview....

- Avec le planificateur de tâches du système, par exemple crontab sous unix.

- En ajoutant la date de la dernière mise à jour dans ton schéma, avant chaque lecture ( avec un trigger ou autre ) tu mets à jour le nombre de points si ça la dernière mise à jour date de plus de une heure
m
0
l
20 Août 2010 18:59:36

Re bonjour ^^

Merci de ta réponse :) 

J'ai un peu pret comprit comment cela marche mais je ne sais pas ou mettre cette commande :s
m
0
l
Contenus similaires
20 Août 2010 19:32:54

Tu es sur quel genre d'hébergement aussi ? Si c'est du mutualisé comme le laisse entendre ta réponse je pense pas que tu puisses utiliser les event ni les crontab.

Regarde plutôt du côté de la troisième solution même si c'est moins joli. Tu peux faire ça de façon purement algorithmique dans ta fonction qui récupère le nombre de points. Il faut juste faire attention aux accès concurrents.

  1. fonction getNombrePoints() : entier
  2. verouillerTable()
  3. nombreHeuresDepuisDernièreMaj = (now() - selectDateDerniereMaj())/60
  4. si nombreHeuresDepuisDernièreMaj >= 1
  5. updateNombrePoints( selectNombrePoints() + 5* nombreHeuresDepuisDernièreMaj )
  6. updateDateDerniereMaj(dateDerniereMaj + nombreHeuresDepuisDernièreMaj*60)
  7. finsi
  8. deverouillerTable()
  9. retourner selectNombrePoints()
  10. fin
m
0
l
22 Août 2010 11:52:37

Salut, dsl du retard: je travaille en local pour listant.
m
0
l
Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS