[MySQL] Comment effacer simplement la dernière entrée ?

Consultez la formation au référencement naturel Google de WebRankInfo / Ranking Metrics


SuperPJ
WRInaute passionné
WRInaute passionné
 
Messages: 513
Inscription: Sam Jan 15, 2005 5:44

[MySQL] Comment effacer simplement la dernière entrée ?

Message le Dim Oct 30, 2005 13:13

Salut à tous,

Existe-t-il un moyen en une seule requête d'effacer la dernière entrée d'une table ?

Pour l'instant je fais via PHP :
Code: Tout sélectionner
SELECT MAX(id) as maxid FROM table;
DELETE FROM table WHERE id='$maxid';

... mais ca nécessite 2 requêtes SQL donc ce n'est pas très optimal.


J'ai donc essayé plein de trucs mais rien ne marche :
Code: Tout sélectionner
=> DELETE FROM table WHERE id=MAX(id);
=> DELETE FROM table WHERE id=LAST(id);
=> DELETE FROM table ORDER BY id DESC LIMIT 1;

error ... error ... error :evil:
à noter que la version MySQL de mon hébergeur ne reconnait pas non plus les SubQueries.

Que faire :cry: ?

spidetra
WRInaute accro
WRInaute accro
 
Messages: 1500
Inscription: Lun Juil 07, 2003 13:06

Message le Dim Oct 30, 2005 13:19

Code: Tout sélectionner
DELETE  FROM table
         ORDER BY `id` desc
         LIMIT 1


normalement ça marche
http://dev.mysql.com/doc/refman/4.1/en/delete.html


SuperPJ
WRInaute passionné
WRInaute passionné
 
Messages: 513
Inscription: Sam Jan 15, 2005 5:44

Message le Dim Oct 30, 2005 13:28

Oui ça le devrait mais apparemment mon hébergeur utilise une version trop vieille de MySQL :(
Nous sommes sous la version 3.23.58

spidetra
WRInaute accro
WRInaute accro
 
Messages: 1500
Inscription: Lun Juil 07, 2003 13:06

Message le Dim Oct 30, 2005 14:26

SuperPJ a écrit:Nous sommes sous la version 3.23.58


Ha oui, quand même, désolé pour toi :!:
Il est pas capable de faire un upgrade de sa version de MySQL, ton hébergeur ?

spidetra
WRInaute accro
WRInaute accro
 
Messages: 1500
Inscription: Lun Juil 07, 2003 13:06

Message le Dim Oct 30, 2005 14:27

...
Dernière édition par spidetra le Dim Oct 30, 2005 19:05, édité 1 fois.

spidetra
WRInaute accro
WRInaute accro
 
Messages: 1500
Inscription: Lun Juil 07, 2003 13:06

Message le Dim Oct 30, 2005 14:27

...
Dernière édition par spidetra le Dim Oct 30, 2005 19:05, édité 1 fois.


SuperPJ
WRInaute passionné
WRInaute passionné
 
Messages: 513
Inscription: Sam Jan 15, 2005 5:44

Message le Dim Oct 30, 2005 15:39

J'espère bien ! Je viens de lui poser la question sur notre forum interne ...

En effet, je ne vois pas l'intérêt de tourner sous de vieilles versions alors que les plus récentes nous permettent d'optimiser nos requêtes et donc de décharger leurs serveurs ... en ce moment je suis souvent obligé de faire plusieurs requêtes qui n'en nécessiteraient qu'une seule si nous étions à jour :( cela dit faut voir s'ils n'upgradent pas à cause de problèmes d'incompatibilité qui feraient planter certains vieux scripts PHP faits sous MySQL-3.2 ...


DreamJap
WRInaute occasionnel
WRInaute occasionnel
 
Messages: 114
Inscription: Ven Mai 06, 2005 20:44

Message le Dim Oct 30, 2005 15:47

Il me semble que les versions de MySQL latest sont compatible avec les anciennes du moins avec les scripts PHP.


TOMHTML
WRInaute accro
WRInaute accro
 
Messages: 3244
Inscription: Mer Aoû 25, 2004 14:05

Message le Dim Oct 30, 2005 16:56

fais gaffe quand même PJ, si tu as mis un ID avec incrémentation à chaque nouvelle entrée
car si tu supprime l'entrée n°10, il ne te reste plus que l'entrée n°9 et les précédentes, mais si tu ajoute une nouvelle entrée elle sera numérotée n°11 et pas n°10, malheureusement

méfie toi donc, petit scarabé ;)

spidetra
WRInaute accro
WRInaute accro
 
Messages: 1500
Inscription: Lun Juil 07, 2003 13:06

Message le Dim Oct 30, 2005 17:01

TOMHTML a écrit:précédentes, mais si tu ajoute une nouvelle entrée elle sera numérotée n°11 et pas n°10, malheureusement


et pas n° 10.... heureusement !


SuperPJ
WRInaute passionné
WRInaute passionné
 
Messages: 513
Inscription: Sam Jan 15, 2005 5:44

Message le Dim Oct 30, 2005 17:50

TOMHTML a écrit:si tu ajoute une nouvelle entrée elle sera numérotée n°11 et pas n°10, malheureusement

méfie toi donc, petit scarabé ;)

Moi aussi je pensais comme toi mais renuméroter les IDs à chaque suppression(s) ralentirait à fond MySQL ;)

Et puis l'autre raison c'est que l'ID est souvent utilisé pour identifier de façon unique un client. Imagine tu es le client Adsense n°123456 et que Google vient de supprimer le client n°123455 parce qu'il passait son temps à cliquer sur ses bannières :D. Si SQL renumérotait les IDs, tu prendrais alors la place du client banni et bye bye tes revenus Adsense :D

spidetra
WRInaute accro
WRInaute accro
 
Messages: 1500
Inscription: Lun Juil 07, 2003 13:06

Message le Dim Oct 30, 2005 18:07

SuperPJ a écrit:Si SQL renumérotait les IDs, tu prendrais alors la place du client banni et bye bye tes revenus Adsense :D


Normalement, c'est gérer par les règles d'intégrité référentielle ( on delete cascade, on update cascade ) ou par des triggers.
ce qui commence à être pris en compte dans MySQL 5.0
donc normalement pas de risque pour tes revenus adsense :)

Les ID auto-incrément se sont là que pour identifier de manière unique un enregistrement, ils n'ont "pas de sens" dans une DB.
donc c'est vraiment pas grave, s'il y a des trous, et c'est bc plus simple à gérer. Si MySQL reprenait le n° 10, il faudrait être sûr d'avoir des devs en béton.


C'est plus grave pour les champs qui auraient un sens :
Ex n° de facture pour une comptabilité

Le fisc aime pas trop voir des trous dans les séries de n° de facture, et donc là la gestion doit être plus fine.


SuperPJ
WRInaute passionné
WRInaute passionné
 
Messages: 513
Inscription: Sam Jan 15, 2005 5:44

Message le Dim Oct 30, 2005 18:13

spidetra a écrit:Ha oui, quand même, désolé pour toi :!:
Il est pas capable de faire un upgrade de sa version de MySQL, ton hébergeur ?

Je viens d'obtenir cette réponse de mon hébergeur : "il n'est pas prévu de les migrer car la procédure de migration ne garantit pas une compatibilité à 100% et certains sites ne fonctionneraient plus".

Voili voilou :(


TOMHTML
WRInaute accro
WRInaute accro
 
Messages: 3244
Inscription: Mer Aoû 25, 2004 14:05

Message le Dim Oct 30, 2005 18:24

SuperPJ a écrit: et certains sites ne fonctionneraient plus".

moins d'une dizaine à tout casser
franchement si le site fonctionne avec cette version de php, ça fonctionne assurément avec la version supérieure ! Quelques fonctions seraient devenues désuettes mais elle fonctionneraient toujours je pense, non ?


SuperPJ
WRInaute passionné
WRInaute passionné
 
Messages: 513
Inscription: Sam Jan 15, 2005 5:44

Message le Dim Oct 30, 2005 18:34

A priori je suis de ton avis TOMHTML, surtout pour une application aussi sensible et aussi répandue que MySQL. Mais bon c'est la réponse qui m'a été donnée par l'hébergeur !

En tout cas si tu veux une version récente de MySQL je te conseille pas mon hébergeur ;) ah t'es déjà chez eux ? Je me demande qui est le lascar qui te l'a conseillé :D jrigole ;)

[MySQL] Comment effacer simplement la dernière entrée ?

Formation recommandée sur ce thème :

Formation Référencement naturel Google : apprenez une méthode efficace pour optimiser à fond le référencement naturel dans Google de façon durable... Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.

Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités