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 :

Ajout dans une table sans doublon


Sujet :

Langage SQL

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 90
    Points : 39
    Points
    39
    Par défaut Ajout dans une table sans doublon
    Bonjour a tous.

    Je debute en SQL et j'aimerais ajouter un element dans une table seulement si cet element n'y ai pas deja, si il y est je retourne true sinon je retourne false. Ce que je ne sais pas faire c'est comment detecter si l'element y est ou pas.

    La solution que j'ai trouve est celle ci :

    je recupere la table qui ne doit contenir que les doublons et je regarde si cette table est vide si oui j'ajoute et je retourne true sinon je ne fais rien et je retourne false. Je ne sais pas du tout si cette solution est la meilleure et je suis ouvert a toutes les solutions que vous me proposerez.

    Le code que j'ai actuellement est :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT *
    FROM ma_table t
    WHERE lastname = t.lastname;

    PS desole pour le manque d'accents, je suis sur un qwerty.

    Merci a tous.

  2. #2
    Membre éclairé
    Homme Profil pro
    Développeur
    Inscrit en
    Juin 2006
    Messages
    645
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Juin 2006
    Messages : 645
    Points : 709
    Points
    709
    Par défaut
    Been... pour avoir des valeurs uniques, tu peux utiliser les clés primaires...

    La requête que tu proposes n'insère rien...

    Au final, je ne suis pas certain de bien comprendre ce que tu veux.

  3. #3
    Membre confirmé Avatar de agemis31
    Profil pro
    DBA
    Inscrit en
    Octobre 2007
    Messages
    399
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : DBA

    Informations forums :
    Inscription : Octobre 2007
    Messages : 399
    Points : 478
    Points
    478
    Par défaut
    Bonjour,

    Vous pouvez utiliser une contrainte d'unicité pour empêcher l'ajout de doublons.

    Sinon, ce que vous cherchez à faire est sans doute ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT CASE WHEN COUNT(*) > 0 THEN 1 ELSE 0 END
    FROM ma_table 
    WHERE lastname = ma_table.lastname;

    @+

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    90
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 90
    Points : 39
    Points
    39
    Par défaut
    Merci de vos reponses.

    En effet c'est ce que je cherche a faire mais le probleme dans ce cas la c'est que je ne sais pas comment recuperer la valeur 1 ou 0 afin de savoir si j'ajoute ou pas.

    Donc comment recuperer la valeur que nous donne le CASE.\

    Merci.

  5. #5
    Membre éclairé
    Homme Profil pro
    Développeur
    Inscrit en
    Juin 2006
    Messages
    645
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Juin 2006
    Messages : 645
    Points : 709
    Points
    709
    Par défaut
    C'est justement ce que te renvoie le SELECT. La requête de agemis31 te renvoie exactement ceci.
    Du coup, je ne saisis pas ton problème... tu peux nous dire où tu souhaites l'utiliser et où tu bloques ?
    A tout hasard : tu as essayé les requêtes imbriquées ? (même si je ne suis pas certain qu'elles soient utiles)

  6. #6
    Membre expérimenté
    Avatar de jbrasselet
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Mars 2006
    Messages
    1 022
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 022
    Points : 1 413
    Points
    1 413
    Par défaut
    Quel est ton SGBD? Oracle? MySQL? SQL Server?

Discussions similaires

  1. Réponses: 2
    Dernier message: 27/05/2014, 14h12
  2. requête ajout dans une table
    Par crissud dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 04/04/2007, 21h28
  3. Bouton pour confirmer un ajout dans une table sous Access
    Par cestimagik dans le forum Access
    Réponses: 3
    Dernier message: 31/12/2006, 11h32
  4. Ajout dans une table et relation avec d'autres
    Par climz dans le forum Access
    Réponses: 5
    Dernier message: 12/05/2006, 16h32
  5. big ajout dans une table
    Par bachilbouzouk dans le forum ASP
    Réponses: 4
    Dernier message: 19/04/2005, 11h22

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