Supprimer les doublons d'une table - SQL/NoSQL - Programmation
Marsh Posté le 28-07-2005 à 12:00:16
Tu dois pouvoir t'en tirer avec un rownum ou un oid, non?
Marsh Posté le 28-07-2005 à 12:04:03
ca donnerait truc du style
delete from table |
Marsh Posté le 28-07-2005 à 12:31:28
et ya pas de rownum ou d'oid ou une connerie du style sous mysql?
Marsh Posté le 28-07-2005 à 12:32:03
et?
EDIT: grilled
Marsh Posté le 28-07-2005 à 12:36:57
sinon, solution brutale :
créer une table temporaire, dans laquelle tu insères toute ta table sauf les lignes qui y sont déjà quand tu veux les insérer.
Et ensuite tu vides ta table, et tu rebascules le contenu de ta table temporaire...
Marsh Posté le 28-07-2005 à 12:38:05
erratum il y a bien une collone rowid sur MySQL
EDIT : en fait non y a pas
Marsh Posté le 28-07-2005 à 12:38:41
Alors tout va bien!
Marsh Posté le 28-07-2005 à 12:40:54
Citation : |
c'est ce que j'ai fait mais c'est crade au possible
Marsh Posté le 28-07-2005 à 12:42:15
betsamee a écrit :
|
ah ben ça j'ai pas dit le contraire...
Mais quand on a pas le choix on fait avec ce qu'on a...
Marsh Posté le 28-07-2005 à 14:07:07
si tu passes par une table temporaire, fais un SELECT DISTINCT ... de la table de départ, histoire de ne pas avoir à vérifier dans la table d'arrivée.
Exemple:
Code :
|
Marsh Posté le 29-07-2005 à 01:38:10
t'as pas une clé primaire ? si t'en a pas, tu peux toujours la rajouter en spécifiant que tu utilises un numéro auto incrément, normalement ça marche.
t'as plus qu'à faire la requête avec le rownum mais en utilisant cette clé à la place, et ça devrait marcher. ensuite, tu peux virer cette clé primaire.
Marsh Posté le 29-07-2005 à 08:12:18
Arjuna a écrit : t'as pas une clé primaire ? si t'en a pas, tu peux toujours la rajouter en spécifiant que tu utilises un numéro auto incrément, normalement ça marche. |
ah oui tiens, bonne idée, ça aussi, en cas de soucis!
Quelqu'un avait posé la même question sur blabla, sous sql server, et ne voyait pas d'autre solution que la table temporaire...celle-ci est probablement meilleure...
Marsh Posté le 29-07-2005 à 10:14:41
merci de votre aide
c'est bien ce que je pensais ; pas de solution qui tient en 1 requete
en fait c'est logique puisque les 2 tuples sont identiques donc impossible d'en isoler un des deux
Marsh Posté le 29-07-2005 à 10:15:16
betsamee a écrit : merci de votre aide |
euh.
Ma solution qui utilise le rownum te plait pas?
Marsh Posté le 29-07-2005 à 11:16:08
betsamee a écrit : merci de votre aide |
en tout cas, une fois la table nettoyée, rajoute une PK sur ton champ, parceque c'est total n'importe quoi une table sans doublons différenciables.
Marsh Posté le 29-07-2005 à 12:10:22
Citation : |
elle est super mais pas de rownum avec MySQL finalement
Marsh Posté le 28-07-2005 à 11:44:35
Bonjour
Je cherche une maniere de supprimer les doublons contenus dans ma table:
Je pensais faire :
cependant le petit pb c'est que cette requette va m'effacer les deux occurences (ou plus) lorsqu'il y a doublon , alors que je veux pouvoir en garder une.
Merci
P.S: c'est pas moi qui fait des tables avec des doublons et sans PK