(Courriels de diversion: <remmeniez@consternee-tinterent.com> <ossements@posterite-substitues.com> <justificative@biner-replet.com> <petrins@allongerez-economisent.com> <reservistes@affinerais-referait.com> <embrayerais@phonologique-appela.com> <brilleront@hispanophone-clopiner.com> <pal@retombez-confirmes.com> <impunie@propageons-geniale.com> <demaquillerait@purgeons-ecuelles.com> )


patrick a écrit :
Le Jeudi 14 Décembre 2006 08:42, Jean-Pierre Nicolin a écrit :
Je n'ai pas encore exploré la méthode proposée par Cédric.
une proposition  dérivée de la sienne :
create table as select count(ref_livre) nb, ref_livre
from MA_table
group by ref_livre
having count(ref_livre) = 1
Je pense aussi que la solution la plus simple est effectivement
d'utiliser les 'aggregates' et une table intermédiaire. Tout dépend des
valeurs "redondantes" Veux tu en conserver une ou pas du tout ?.
Si je peux, oui.

Je ferais donc pour le select interne :
select 1 , (tous les autres champs identiques par groupe) from matable
group by (tous les autres champs identiques par groupe);
Dans l'immédiat j'ai basculé sur la table avec un champ 'unique' sur le titre pour éviter les doublons. Ca fonctionne très bien.
Il ne me reste plus qu'à restituer les enregistrements de l'ancienne table dans la nouvelle.


(merci pour votre aide)
Bonjour

Pour des problèmes isolés de ce type et si on ne maîtrise pas les subtilités SQL, si l'on n'a pas de langage procédural associé à la base(transactSQL/M$, PLSQL/Oracle), et pour les petites bases, il y la méthode bestiale (pas très gnou ;-) :

- On fait un export de la base. (voir phpMyAdmin chez free)
- On se retrouve avec un script SQL de création / remplissage de base (pratique pour déménager / sauvegarder la base d'un site)
- On édite l'export avec son éditeur favori*,
- On vire / corrige à la main ou on fait des macros / scripts pour toiletter sa base (avec une base propre, on se sent mieux ;-)
- On ré-importe le résultat avec phpMyAdmin*


Bon courage
Jean


* : pour une édition optimale des données RMS recommande Emasc :-)

* : dans le cas qui nous intéresse, il peut penser qu'il suffit de réimporter seulement la table concernée, et en principe, dans le script produit par phpMyAdmin il y a les instructions pour vider la table avant de charger les nouvelles données. Attention s'il y a des relations vers cette table cela peut poser des problèmes de clés étrangères. A défaut d'une bonne maîtrise du problème je conseille d'être bestial, de garder le script complet et de tout recréer dans la base.






-------------------------------------------------------------------- Les listes de diffusion occultes: <URL:http://www.CULTe.org/listes/>