Sql- delete le dernier tuple ajoute ?

Fermé
Salandar - 5 févr. 2007 à 18:16
 Salandar - 5 févr. 2007 à 19:19
Bonjour,
Je programme une partie d'un logiciel en JAVA et je fais appel au langage SQL.
J'ai un petit problème avec la commande DELETE.
Alors voila je me demande comment DELETE le tout dernier tuple ajouté à une table.
Voici comment j'utilise le DELETE , bien sur ca ne marche pas.

DELETE FROM Table WHERE matricule="+matricule+" AND id=(SELECT MAX(id) FROM Table;

matricule étant ici une FOREIGN KEY sur une autre table et id étant la clé primaire de la table Table.

Alors j'aimerais savoir qu'elle est la bonne requête à effectuer.

Merci d'avance pour votre aide et bonne soirée

1 réponse

Reivax962 Messages postés 3672 Date d'inscription jeudi 16 juin 2005 Statut Membre Dernière intervention 11 février 2021 1 011
5 févr. 2007 à 18:22
Bonjour,

Deux choses.

- Premièrement, cela dépend de ton SGBD. Quel base de données utilises-tu ?
- Deuxièmement, utilisé MAX(id) est très dangereux. Imagine que deux personnes travaillent en même temps, le premier rentre des données, le deuxième aussi, puis le premier veut supprimer sa ligne : il va effacer celle de son collègue ! Il existe des méthodes pour régler ce genre de problèmes, mais elles dépendent de ton SGBD. D'où le première remarque ;)

Xavier
0
j'utilise MySQL comme sgbd.
Si il existe un meilleur moyen ca serait bien en effet.
Nous avons en cours parlé des transactions ca doit avoir un rapport avec ca.
Mais le logiciel que nous développons ne sera sans doute pas multiposte mais bon sais-ton jamais si possible ca serait bien d'avoir une méthode assez complète.
Merci de ton aide.
0