[fr-users] Re: [users-fr] [Base] anti-doublon incompréhensible
Bernard Ribot <ribotb <at> gmail.com>
2012-02-13 21:26:29 GMT
Le 13/02/2012 18:29, Bernard Ribot a écrit :
> Le 13/02/2012 18:14, Bernard Ribot a écrit :
>> Le 11/02/2012 19:14, Lucien RUBEMPRE a écrit :
>>> /Le 11/02/2012 08:50, Bernard Ribot a écrit :/
>>>> /Le 10/02/2012 23:09, Lucien RUBEMPRE a écrit :
>>>> /
>>>>> //Le 10/02/2012 19:06, Bernard Ribot a écrit :/
>>>>> /
>>>>>> //Ça marche aussi avec MySQL (je l'ai essayé aussi). Il n'y a pas
>>>>>> besoin des guillemets :
>>>>>> ALTER TABLE nom_table ADD CONSTRAINT nom_contrainte UNIQUE
>>>>>> (ClairPays) /
>>>>>> /
>>>>> /Effectivement ça fonctionne.
>>>>> Mais c'est une méthode "pas-à-pas". En effet : la formule
>>>>> t'indique le premier doublon. Tu vas l'effacer dans la table. Puis
>>>>> tu remets la formule (en effet elle ne reste pas en mémoire dans
>>>>> la boîte de commande SQL) et tu obtiens le doublon suivant. tu
>>>>> retournes dans la table pour le supprimer, etc.
>>>>> /
>>>> /Ça m'étonne quand tu dis qu'il faut "remettre la formule" (sic)
>>>> après chaque détection de doublon. La contrainte a été ajoutée au
>>>> schéma et ce, de façon permanente. Elle fait maintenant partie de
>>>> la structure.
>>>>
>>>> Je ferai quelques tests en rentrant de week-end
>>>>
>>>> Bernard
>>>>
>>>> /
>>> Ce n'est pas la peine Bernard : effectivement, on n’est pas obligé
>>> de ressaisir la formule à chaque fois. Par contre, il faut bien
>>> faire des aller-retour entre la boîte de dialogue SQL et la table,
>>> pour supprimer les doublons un à un.
>>
>> Bonjour, me revoilà
>>
>> Au lieu d'essayer d'éliminer les doublons au fil de l'eau, ce serait
>> peut-être moins pénible de les supprimer en bloc a posteriori.
>> Pour les retrouver, on peut par exemple utiliser ce genre de requête :
>> SELECT t_pays.IDPays, t_pays.ClairPays, COUNT(*) FROM t_pays GROUP BY
>> t_pays.ClairPays HAVING COUNT(*) > 1;
>>
>> Bernard
>>
>>
> Si tu utilises cette 2ème méthode, il faudra supprimer la contrainte
> qui avait èté mise sur ClairPays (quelque chose comme : ALTER TABLE
> t_pays DROP CONSTRAINT nom_contrainte).
>
> Bernard
>
Rectificatif :
c'est DROP KEY (et non DROP CONSTRAINT).
--
--
Bernard Ribot
LibreOffice.org 3.5.0rc3 / Windows 7 SP1
LibreOffice.org 3.3.4 / Windows XP SP3
--
------------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe <at> fr.openoffice.org
For additional commands, e-mail: sympa <at> fr.openoffice.org with Subject: help