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 :

Comment tester si une clé primaire existe dans une table


Sujet :

Langage SQL

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 67
    Points : 34
    Points
    34
    Par défaut Comment tester si une clé primaire existe dans une table
    Bonjour,

    je cherche a tester si une clé primaire existe dans ma base de donnée existe t-il une requete particuliere qui repondrait a ma demande ?

    d'avance merci

  2. #2
    Rédacteur
    Avatar de benwit
    Profil pro
    dev
    Inscrit en
    Septembre 2004
    Messages
    1 676
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : dev

    Informations forums :
    Inscription : Septembre 2004
    Messages : 1 676
    Points : 4 265
    Points
    4 265
    Par défaut
    Je ne sais pas trop ce que tu veux faire mais en général, une clé primaire est unique et obligatoire (a définir à la création). Le SGBD va hurler (et tu récuperas l'erreur au niveau de ton programme) si tu essayes d'insérer/modifier un enregistrement dont la clé existe déjà.

    Maintenant, tu peux vouloir faire un test préalable avec un : SELECT nom_champs_cle_primaire FROM maTable WHERE nom_champs_cle_primaire = maValeur;

    Maintenant, s'il s'agit de savoir si une table définit des champs comme clé primaire, tu peux le faire soit par les méta-données, soit en listant les contraintes posés sur la table.

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 67
    Points : 34
    Points
    34
    Par défaut
    ba enfait quand je fais un

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT nom_champs_cle_primaire FROM maTable WHERE nom_champs_cle_primaire = maValeur
    avec maValeur = une valeur qui n'existe pas ds ma base
    il me renvoit pas d'erreur et j'aimerais justement qu'il me renvoit une valeur afin de traiter l'erreur derriere du genre si le code existe pas il renvoit false ( ou autre )

  4. #4
    Rédacteur
    Avatar de benwit
    Profil pro
    dev
    Inscrit en
    Septembre 2004
    Messages
    1 676
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : dev

    Informations forums :
    Inscription : Septembre 2004
    Messages : 1 676
    Points : 4 265
    Points
    4 265
    Par défaut
    Ben, tu le sais :
    si pas de réponse : la clé n'existe pas.
    Si réponse : la clé existe.

    Maintenant, si tu veux une valeur numérique, tu n'as qu'à faire :
    SELECT COUNT(*) FROM maTable WHERE nom_champs_cle_primaire = maValeur
    Tu auras 0 s'il n'y a pas de clé, 1 s'il y en a une et n si elle n'est pas unique !

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 67
    Points : 34
    Points
    34
    Par défaut
    ok merci je vais essayer cela et je te tiens au courant

  6. #6
    Expert éminent
    Avatar de qi130
    Homme Profil pro
    Expert Processus IT
    Inscrit en
    Mars 2003
    Messages
    3 925
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Expert Processus IT
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 3 925
    Points : 6 040
    Points
    6 040
    Par défaut
    Sinon, il faut tester le code retour SQL qui doit être à -100 (je crois ou 100 ?) quand il n'y a pas de données correspondant à la requète.

  7. #7
    Xo
    Xo est déconnecté
    Expert confirmé
    Avatar de Xo
    Inscrit en
    Janvier 2005
    Messages
    2 701
    Détails du profil
    Informations personnelles :
    Âge : 51

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 701
    Points : 4 238
    Points
    4 238
    Par défaut
    Citation Envoyé par ToMs
    je cherche a tester si une clé primaire existe dans ma base de donnée existe t-il une requete particuliere qui repondrait a ma demande ?
    Oui

    cf http://sqlpro.developpez.com/cours/s...age=partie2#L9

    Ex sous Oracle :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    SQL> CREATE TABLE MaTable (
      2  id NUMBER (10),
      3  libe VARCHAR2 (32));
     
    Table créée.
     
    SQL> SELECT Constraint_Name, Status
      2    FROM User_Constraints
      3   WHERE Table_Name = 'MATABLE'
      4     AND Constraint_TYPE = 'P';
     
    aucune ligne sélectionnée
     
    SQL> ALTER TABLE MaTable ADD CONSTRAINT MaCle PRIMARY KEY (id);
     
    Table modifiée.
     
    SQL> SELECT Constraint_Name, Status
      2    FROM User_Constraints
      3   WHERE Table_Name = 'MATABLE'
      4     AND Constraint_TYPE = 'P';
     
    CONSTRAINT_NAME                STATUS
    ------------------------------ --------
    MACLE                          ENABLED

  8. #8
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 67
    Points : 34
    Points
    34
    Par défaut
    c'est bon ca fonctionne

    merci ca tous

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

Discussions similaires

  1. [XL-2003] comment tester la présence d'un caractère dans une cellule
    Par fllyann dans le forum Macros et VBA Excel
    Réponses: 16
    Dernier message: 28/12/2010, 21h05
  2. Réponses: 1
    Dernier message: 26/12/2010, 21h20
  3. Réponses: 1
    Dernier message: 26/02/2009, 18h13
  4. Réponses: 6
    Dernier message: 16/07/2007, 12h12
  5. Réponses: 2
    Dernier message: 06/05/2006, 22h50

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