Transfert de données d'une table à une autre
Fermé
guerrierdefe
Messages postés
2
Date d'inscription
vendredi 4 octobre 2013
Statut
Membre
Dernière intervention
4 octobre 2013
-
4 oct. 2013 à 14:47
heliconius Messages postés 545 Date d'inscription mardi 1 juillet 2008 Statut Membre Dernière intervention 23 juin 2023 - 7 oct. 2013 à 11:43
heliconius Messages postés 545 Date d'inscription mardi 1 juillet 2008 Statut Membre Dernière intervention 23 juin 2023 - 7 oct. 2013 à 11:43
A voir également:
- Transfert de données d'une table à une autre
- Table ascii - Guide
- Comment faire une table des matières sur word - Guide
- We transfert - Guide
- Effacer les données de navigation - Guide
- Reinstaller windows sans perte de données - Guide
3 réponses
heliconius
Messages postés
545
Date d'inscription
mardi 1 juillet 2008
Statut
Membre
Dernière intervention
23 juin 2023
137
7 oct. 2013 à 00:00
7 oct. 2013 à 00:00
Bonsoir,
Je ne sais pas du tout si c'est la bonne solution ni si MySQL peut effectuer des tâches programmées mais le "...tous les 7 jours..." me fait penser à une solution que j'avais déjà mise en place. Pour ce qui me concerne, c'était un truc tout bête : un mail devait m'avertir si l'anniversaire d'un de mes proches ou amis arrivait dans les 3 jours qui venaient. Alors pourquoi pas imaginer un transfert si le nombre d'enregistrements dépasse un certain seuil ?
Une table avec les noms et les dates de naissances.
Un cron tous les jours à 5h00 du matin exécutait un script PHP :
Tous les jours à 5h00 le script verifanniv.php était exécuté.
Une requete interrogeait la table dans la base de données. Si aucun enregistrement sortait, arrêt du script ; sinon envoi d'un mail avec la liste des dates anniversaire avec les noms, puis arrêt du script.
Dans ton cas, et en attendant mieux, je commencerais par chercher dans cette voie. Tous les jours à telle heure un script vérifierait la table log de la base de données log. Si le nombre d'enregistrement < 500.000 : arrêt du script ; sinon, copie dans une table log de la base de données save_log (save_log.log) de tous les enregistrements en trop dans log.log et une fois la copie faite, suppression dans log.log des enregistrements qui viennent d'être sauvegardés dans save_log.log
Tu pourrais définir un cron genre :
NB: Dans ce script, une variable du genre $seuil pourrait contenir la limite. La limite pourrait être un nombre d'enregistrements ou une date-heure. Une fois le cron mis en place, il suffirait, en cas de besoin de modifier la valeur de la variable $seuil.
Ce n'est pas compliqué à faire. Toutefois, je suis sûr qu'il doit exister une autre manière plus élégante mais comme on dit : faute de grives, on mange des merles. Mieux vaut ça que rien du tout. Et ça permet de soulager de suite en donnant le temps de trouver quelque chose de plus élégant.
Je ne sais pas du tout si c'est la bonne solution ni si MySQL peut effectuer des tâches programmées mais le "...tous les 7 jours..." me fait penser à une solution que j'avais déjà mise en place. Pour ce qui me concerne, c'était un truc tout bête : un mail devait m'avertir si l'anniversaire d'un de mes proches ou amis arrivait dans les 3 jours qui venaient. Alors pourquoi pas imaginer un transfert si le nombre d'enregistrements dépasse un certain seuil ?
Une table avec les noms et les dates de naissances.
Un cron tous les jours à 5h00 du matin exécutait un script PHP :
0 5 * * * root php verifanniv.php
Tous les jours à 5h00 le script verifanniv.php était exécuté.
Une requete interrogeait la table dans la base de données. Si aucun enregistrement sortait, arrêt du script ; sinon envoi d'un mail avec la liste des dates anniversaire avec les noms, puis arrêt du script.
Dans ton cas, et en attendant mieux, je commencerais par chercher dans cette voie. Tous les jours à telle heure un script vérifierait la table log de la base de données log. Si le nombre d'enregistrement < 500.000 : arrêt du script ; sinon, copie dans une table log de la base de données save_log (save_log.log) de tous les enregistrements en trop dans log.log et une fois la copie faite, suppression dans log.log des enregistrements qui viennent d'être sauvegardés dans save_log.log
Tu pourrais définir un cron genre :
0 5 * * * root php save_troplein.php
NB: Dans ce script, une variable du genre $seuil pourrait contenir la limite. La limite pourrait être un nombre d'enregistrements ou une date-heure. Une fois le cron mis en place, il suffirait, en cas de besoin de modifier la valeur de la variable $seuil.
Ce n'est pas compliqué à faire. Toutefois, je suis sûr qu'il doit exister une autre manière plus élégante mais comme on dit : faute de grives, on mange des merles. Mieux vaut ça que rien du tout. Et ça permet de soulager de suite en donnant le temps de trouver quelque chose de plus élégant.
bonjour, c'est en effet une solution à laquelle je n'avais pas pensé.
c'est une bonne idée je vais faire sa.
Merci
c'est une bonne idée je vais faire sa.
Merci
heliconius
Messages postés
545
Date d'inscription
mardi 1 juillet 2008
Statut
Membre
Dernière intervention
23 juin 2023
137
7 oct. 2013 à 11:43
7 oct. 2013 à 11:43
Pas de quoi !
Et je pense inutile de conseiller, avant la mise en place du cron de commenter les instructions de suppression. Et si le transfert s'est effectué correctement lors de l'exécution programmée, la suppression se fera à la main, puis retrait des marques de commentaire.
Lors de l'exécution suivante si tout s'est déroulé normalement (copie puis suppression), tu pourras venir cocher ce sujet si tu l'estimes résolu.
Bonne suite.
Et je pense inutile de conseiller, avant la mise en place du cron de commenter les instructions de suppression. Et si le transfert s'est effectué correctement lors de l'exécution programmée, la suppression se fera à la main, puis retrait des marques de commentaire.
Lors de l'exécution suivante si tout s'est déroulé normalement (copie puis suppression), tu pourras venir cocher ce sujet si tu l'estimes résolu.
Bonne suite.