Utilisateur anonyme
-
25 avril 2005 à 21:39
Freezystem
Messages postés5Date d'inscriptiondimanche 24 mai 2009StatutMembreDernière intervention 5 septembre 2009
-
5 sept. 2009 à 11:39
Bonsoir, j'aurais aimer savoir si il est possible de supprimer automatiquement une ligne MySQL
Je m'explique :
En fait il faudrais pouvoir compter le nombre de ligne dans la table
MySQL (mysql_num_rows) ensuite si le nombre de ligne est superieur à
par exemple 50 on va dire 51 ça supprime la 51eme ligne trier par ID
DESC pour effacer par exemple la ligne avec l'ID la plus petite (1 par
exemple).
En fait je me suis mal exprimer et je me suis tromper dans la question,
je voudrais plutot supprimer l'id 1 par exemple quand on arrive à 50
lignes, ensuite l'id deux quand on arrive de nouveau à 50 lignes etc
... pour qu'il y est toujours 50 lignes au total, et qu'il supprimer
les plus anciennes !
malalam
Messages postés10839Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention 2 mars 201025 27 avril 2005 à 08:17
La je ne pige pas lol...
Ok j'avais mal compris (omis le DESC), mais...ma solution reste valable, avec le limit. Il suffit de changer les bornes, voila tout, et c'est plus simple.
cs_Anthomicro
Messages postés9433Date d'inscriptionmardi 9 octobre 2001StatutMembreDernière intervention13 avril 20078 27 avril 2005 à 09:19
Ta solution ne sera pas valable si la table n'est pas organisée par id DESC.
Donc il faut s'assurer que la table est bien organisée par ID DESC (ce
qui n'est plus forcément le cas après de multiples ajouts/suppressions.
Bref il te faut une requête supplémentaire : ALTER ta_table ORDER BY id DESC
donc en tout deux requêtes. Un order étant quelque chose de gourmand,
je pense que ma solution est plus rapide sur une table qui commence à
avoir du contenu (si t'as le courage de tester ^^)
cs_Anthomicro
Messages postés9433Date d'inscriptionmardi 9 octobre 2001StatutMembreDernière intervention13 avril 20078 27 avril 2005 à 12:01
Ouais tout à fait :-)
Le tout fait en une seule requête, par contre je pense que sur une
table ayant beaucoup d'enregistrements ma solution sera plus
performante, mais vu qu'on ne garde que 50 enregistrements, ta solution
est parfaite :-)
malalam
Messages postés10839Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention 2 mars 201025 27 avril 2005 à 12:18
A rien, c'est juste un exemple la. timsteamp ici est le nom d'un champ de la base utilisee en exemple, c'est tout. Et tu n'as pas besoin de clause WHERE, toi.