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 :

Add contraint sql


Sujet :

Langage SQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Février 2008
    Messages
    104
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 104
    Par défaut Add contraint sql
    Salut,

    J'ai une table animal, sa clef secondaire (zoo par exemple) pointe sur l'id (GUID) de la table T_Zoo.

    j'aimerais que la valeur du champ possible pour t_animal.Zoo soit '1111-111....' OU alors un des id de la table t_zoo

    t_animal
    Id
    Nom
    Zoo
    t_too
    id
    lieu
    t_animal.zoo -> t_zoo.id

    Comment pratiquer ?

    Merci

  2. #2
    Scorpi0
    Invité(e)
    Par défaut
    Bonjour,

    Clé étrangère sur t_animal.zoo, et pis c'est tout.
    Ta bidouille avec ton '1111-111....' m'a franchement l'air très douteuse. Si tu nous expliquait le pourquoi de ce besoin...

    Au pire tu crée un zoo fictif avec un ID '1111-111....', et tu renseignes une valeur par défaut a t_animal.zoo.

  3. #3
    Membre confirmé
    Inscrit en
    Février 2008
    Messages
    104
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 104
    Par défaut
    En fait se serait plûtot Null ou une référence.

  4. #4
    Membre confirmé
    Inscrit en
    Février 2008
    Messages
    104
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 104
    Par défaut
    Null ou un lien vers une autre table.
    Pas d'idées ?

  5. #5
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 818
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 818
    Billets dans le blog
    14
    Par défaut
    Citation Envoyé par Thesum Voir le message
    J'ai une table animal, sa clef secondaire (zoo par exemple) pointe sur l'id (GUID) de la table T_Zoo.
    Ce que tu appelles "clef secondaire" est en fait une clef étrangère. Elle fait référence à la clef primaire de la table T_Zoo. Elle ne peut donc contenir que des valeurs existantes de cette clef primaire ou NULL si la clef étrangère n'est pas NOT NULL.

    Comment pratiquer ?
    Comment pratiquer quoi ?
    - Comment ajouter la contrainte de clef étrangère ?
    - Comment ajouter une ligne qui respecte la contrainte et va chercher la bonne valeur de clef en en connaissant que le nom du zoo ?

    Quel SGBD ?
    Quel langage pour le programme qui utilise la BDD ?
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  6. #6
    Membre confirmé
    Inscrit en
    Février 2008
    Messages
    104
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 104
    Par défaut
    Par clef secondaire je voulais bien dire clef étrangère...
    C'est bien le soucis, dans ma table t_zoo l'id ne peut être NULL.
    Mais la clef étrangère devrait pouvoir être Null OU un id de la table zoo.
    Sql server 2005.

  7. #7
    Expert éminent
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 818
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 818
    Billets dans le blog
    14
    Par défaut
    Citation Envoyé par Thesum Voir le message
    C'est bien le soucis, dans ma table t_zoo l'id ne peut être NULL.
    Normal ! Il me semble que c'est la clé primaire non ?
    Mais la clef étrangère devrait pouvoir être Null OU un id de la table zoo.
    Il faut donc que, dans la table t_animal, la colonne Zoo ne soit pas NOT NULL. Tu peux même pour être plus propre y mettre NULL pour valeur par défaut.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole, en retraite... mais toujours Autoentrepreneur à l'occasion.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

Discussions similaires

  1. Contrainte SQL CHECK -
    Par lerieure dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 22/09/2010, 10h43
  2. Add In SQL server
    Par joc02 dans le forum C#
    Réponses: 1
    Dernier message: 12/03/2010, 16h02
  3. Réponses: 5
    Dernier message: 23/10/2009, 16h09
  4. Contrainte SQL Server
    Par Sky_Valmont dans le forum MS SQL Server
    Réponses: 9
    Dernier message: 28/04/2005, 21h33

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