[MySQL] Comment effacer simplement la dernière entrée ?
16 messages
• Page 1 sur 2 • 1, 2
-

SuperPJ - WRInaute impliqué

- Messages: 513
- Inscription: 15 Jan 2005
[MySQL] Comment effacer simplement la dernière entrée ?
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 :
... 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 :
error ... error ... error
à noter que la version MySQL de mon hébergeur ne reconnait pas non plus les SubQueries.
Que faire
?
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
à noter que la version MySQL de mon hébergeur ne reconnait pas non plus les SubQueries.
Que faire
- spidetra
- WRInaute passionné

- Messages: 1500
- Inscription: 7 Juil 2003
- 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 impliqué

- Messages: 513
- Inscription: 15 Jan 2005
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 ...
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
-

TOMHTML - WRInaute accro

- Messages: 3250
- Inscription: 25 Aoû 2004
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é
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é
-

SuperPJ - WRInaute impliqué

- Messages: 513
- Inscription: 15 Jan 2005
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
- spidetra
- WRInaute passionné

- Messages: 1500
- Inscription: 7 Juil 2003
SuperPJ a écrit:Si SQL renumérotait les IDs, tu prendrais alors la place du client banni et bye bye tes revenus Adsense
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 impliqué

- Messages: 513
- Inscription: 15 Jan 2005
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

- Messages: 3250
- Inscription: 25 Aoû 2004
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 impliqué

- Messages: 513
- Inscription: 15 Jan 2005
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é
jrigole 
En tout cas si tu veux une version récente de MySQL je te conseille pas mon hébergeur
16 messages
• Page 1 sur 2 • 1, 2
Lectures recommandées sur ce thème :
- Choisir une entrée mysql au hasard
- [PHP/MySQL] Augmenter la valeur de 1 sur une entrée INT
- effacer es doublons d'une table mysql [script]
- Mysql: Effacer tout ce qui est au-dessus d'une limite
- Dmoz comment entrée
- Gros problèmes depuis derniere mise à jour Mysql sous Debian !
- Afficher les 10 derniere insert d'une table Mysql avec php ?
- [MySQL] sélectionner la dernière note pour chaque élève en une seule requète ?
- Comment effacer des pages indexées ?!
- comment effacer une discussion ancienne ?
- Gestion des langues et des sessions en PHP / MySQL - 02-05-2004
- Passage à l'heure d'été/hiver sur un forum phpBB - 31-10-2010
- AdSense Tracking : statistiques détaillées sur les clics AdSense - 29-02-2004
- Script de mise en cache des pages (PHP MySQL) - 09-08-2010
Consultez la description détaillée des produits ou services de Google suivants : Google Earth Flight Simulator, Google Images
- Suggestions de mots-clés
Cet outil vous fournit une liste de mots sémantiquement proches du mot que vous fournissez en entrée. Il peut servir à vous donner des idées de mots à utiliser sur vos pages, voire de contenus à ajouter.
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité

