IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage SQL Discussion :

Détection de doublons


Sujet :

Langage SQL

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Août 2013
    Messages
    226
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2013
    Messages : 226
    Points : 78
    Points
    78
    Par défaut Détection de doublons
    Bonjour,

    Voilà mon problème. J'ai une table contenant les noms et prénoms des Jockeys, constituée de 3 colonnes: Nom_Jockey, Prénom_Jockey, ID_Jockey.


    J'aimerais pouvoir faire en sorte de détecter un doublon à l'enregistrement si et seulement si, un nom et un prénom figurent sur la même ligne.

    C'est à dire que, par exemple, pour Jean-Michel Bazire, On ne puisse saisir qu'une seule ligne contenant 'Jean-Michel' et 'Bazire'. Par contre, On pourra saisir 'Bazire' avec le prénom 'Pierre', sur une autre ligne. On pourra également saisir le prénom 'Pierre' une deuxième fois avec le nom 'Levesque', si Pierre Levesque ne figure pas encore dans la table.

    J'espère avoir été suffisamment clair dans ma demande.

    Je remercie par avance mon sauveur.

  2. #2
    Modérateur

    Profil pro
    dba
    Inscrit en
    Janvier 2010
    Messages
    5 643
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : dba

    Informations forums :
    Inscription : Janvier 2010
    Messages : 5 643
    Points : 13 092
    Points
    13 092
    Par défaut
    Bonjour,

    Alors il vous faut simplement créer une contrainte d'unicité sur les deux colonnes nom et prénom

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Août 2013
    Messages
    226
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2013
    Messages : 226
    Points : 78
    Points
    78
    Par défaut
    J'ai déjà essayé ça. Mais sans succès.

    Comment faire ceci, en autorisant un même prénom pour un nom différent et vice-versa ?

  4. #4
    Modérateur
    Avatar de Chtulus
    Homme Profil pro
    Ingénieur
    Inscrit en
    Avril 2008
    Messages
    3 094
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2008
    Messages : 3 094
    Points : 8 678
    Points
    8 678
    Par défaut
    Bonsoir,

    Citation Envoyé par Neelix57 Voir le message
    J'ai déjà essayé ça. Mais sans succès.
    C'est à dire car là j'ai un doute sur votre réponse, qu'avez vous tenté exactement ?


  5. #5
    Membre expérimenté
    Avatar de islamov2000
    Homme Profil pro
    Ingénieur d'études & developpement en informatique
    Inscrit en
    Septembre 2007
    Messages
    814
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Ingénieur d'études & developpement en informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2007
    Messages : 814
    Points : 1 717
    Points
    1 717
    Billets dans le blog
    6
    Par défaut
    @Neelix57, tu veux concevoir cette table, ou bien tu as déjà une table qui possède des doublons

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Août 2013
    Messages
    226
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2013
    Messages : 226
    Points : 78
    Points
    78
    Par défaut
    Citation Envoyé par Chtulus Voir le message
    Bonsoir,



    C'est à dire car là j'ai un doute sur votre réponse, qu'avez vous tenté exactement ?

    J'ai essayé à l'aide l'ébauche d'index (je travaille sous libro base), mais là, base n'arrive plus a faire quoi que ce soit avec ma table. Et également j'ai essayé à l'aide d'une requête ALTER TABLE, basée sur la requête ci-dessous.

    J'ai même tenté de supprimer la table et de la recréer :

    CREATE TABLE "Jockeys" ("Nom_Jockey" varchar(100) UNIQUE, "Prénom_Jockey" varchar(100) UNIQUE, "ID_Jockey" integer UNIQUE)

    J'ai trouvé ça sur le net.

    Citation Envoyé par islamov2000 Voir le message
    @Neelix57, tu concevoir cette table, ou bien tu as déjà une table qui possède des doublons
    La table ne contient pas encore de doublons.

  7. #7
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Mai 2002
    Messages
    3 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 173
    Points : 5 345
    Points
    5 345
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    CREATE UNIQUE INDEX NOM_INDEX ON MA_TABLE(col1, col2, ...)

  8. #8
    Modérateur

    Profil pro
    dba
    Inscrit en
    Janvier 2010
    Messages
    5 643
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : dba

    Informations forums :
    Inscription : Janvier 2010
    Messages : 5 643
    Points : 13 092
    Points
    13 092
    Par défaut
    CREATE TABLE "Jockeys" ("Nom_Jockey" varchar(100) UNIQUE, "Prénom_Jockey" varchar(100) UNIQUE, "ID_Jockey" integer UNIQUE)
    non, je disais de créer une contrainte sur les deux colonnes, et non pas un contrainte sur chaque colonne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    CREATE TABLE Jockeys(
    	ID_Jockey integer NOT NULL PRIMARY KEY
    	,Nom_Jockey varchar(100) NOT NULL
    	,Prenom_Jockey varchar(100) NOT NULL
    	,
    	CONSTRAINT UQ_JOCKEYS_NOM_PRENOM UNIQUE(Nom_Jockey, Prenom_Jockey)
    )

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Août 2013
    Messages
    226
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2013
    Messages : 226
    Points : 78
    Points
    78
    Par défaut
    Je vous remercie beaucoup, les gars. En fait, entre temps, à force de persévérance, j'ai fini par trouver moi-même. J'ai tout simplement fait la requête suivante sur la table existante :

    ALTER TABLE "Jockeys" ADD CONSTRAINT cnst_jockeys UNIQUE ("Prénom_Jockey", "Nom_Jockey")
    Je place donc le post en résolu.

    Encore merci.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Détection de doublons
    Par Tchupacabra dans le forum Langage SQL
    Réponses: 3
    Dernier message: 04/06/2009, 09h49
  2. Problème de détection de doublons
    Par billoux70 dans le forum SQL
    Réponses: 25
    Dernier message: 23/10/2008, 15h59
  3. Détection des doublons sans effacer
    Par drakkar_agfa dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 09/10/2008, 21h55
  4. Détection de doublons dans une table
    Par doo.bonivento dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 04/10/2007, 17h05
  5. D7/firebird 1.5 - détection de doublons
    Par jer64 dans le forum Bases de données
    Réponses: 12
    Dernier message: 30/03/2006, 21h35

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo