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 :

Une contrainte "unique" sur une clé primaire


Sujet :

Langage SQL

  1. #1
    Invité1
    Invité(e)
    Par défaut Une contrainte "unique" sur une clé primaire
    Bonjour,

    Je suis nouveau ici alors j'espère que j'ai posté ma question dans le bon endroit.

    Je suis sous SQL Server 2008, et sur l'une de mes tables, j'aimerai pouvoir mettre une contrainte d'unicité sur ma clé primaire. Je précise que ma table contient une autre colonne avec une contrainte d'unicité.

    Pour la première colonne, ma contrainte d'unicité a fonctionné, parcontre pour créer la même sur ma clé primaire (en mode graphique), cela ne fonctionne pas et SQL Server me la refuse. A mon avis, il va falloir que je fasse un script.

    Ma question est la suivante : en tant que clé primaire, est ce qu'il est possible de définir une contrainte d'unicité sur une clé primaire, ou est ce qu'en tant que clé primaire, il est impossible que les informations se répètent?

    Je vous remercie par avance.

  2. #2
    Membre éprouvé Avatar de Oishiiii
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2009
    Messages
    508
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Août 2009
    Messages : 508
    Points : 1 104
    Points
    1 104
    Par défaut
    Bonsoir,

    Une clé primaire respecte forcément la contrainte d'unicité par définition.

    En fait une clé primaire n'est qu'un cas particulier de clé candidate (contrainte d'unicité).

    Vous pouvez avoir plusieurs clé candidates dans une table, mais seulement une clé primaire.

  3. #3
    Invité1
    Invité(e)
    Par défaut
    Citation Envoyé par Oishiiii Voir le message
    Bonsoir,

    Une clé primaire respecte forcément la contrainte d'unicité par définition.

    En fait une clé primaire n'est qu'un cas particulier de clé candidate (contrainte d'unicité).

    Vous pouvez avoir plusieurs clé candidates dans une table, mais seulement une clé primaire.
    Je vous remercie pour votre réponse.

    Si je comprend bien, il m'est donc inutile de faire une contrainte d'unicité sur une clé primaire, c'est bien cela?

  4. #4
    Membre éprouvé Avatar de Oishiiii
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2009
    Messages
    508
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Août 2009
    Messages : 508
    Points : 1 104
    Points
    1 104
    Par défaut
    Oui.
    Vous pouvez le tester en essayant d'insérer un "doublon" dans une clé primaire.

  5. #5
    Invité1
    Invité(e)
    Par défaut
    Je vous remercie pour votre réponse, cela me sera très utile pour la suite.

Discussions similaires

  1. Réponses: 4
    Dernier message: 18/07/2012, 15h59
  2. [XL-2002] Ecouter un evenement sur une cellule et le reproduire sur une autre cellule
    Par kulnae dans le forum Macros et VBA Excel
    Réponses: 28
    Dernier message: 17/08/2009, 21h21
  3. [MySQL] requête avec une contrainte d'exclusion portant sur une liste de valeurs
    Par vincounet dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 25/08/2008, 14h54

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