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

PostgreSQL Discussion :

cles primaire multi-champs dont un NULL


Sujet :

PostgreSQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Septembre 2006
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 12
    Par défaut cles primaire multi-champs dont un NULL
    Bonjour,

    voila, j'ai une clés primaire composée de deux champs NOT NULL , je souhaiterais ajouté un champs (clés étrangère) qui viendrait completer ma clé primaire. le problème est qu'il peut être NULL...
    Pour moi c'est logique donc possible mais est ce vraiment possible ?!?

    Merci

  2. #2
    Membre Expert Avatar de scheu
    Inscrit en
    Juin 2007
    Messages
    1 506
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 1 506
    Par défaut
    Une clé primaire ne peut pas comporter de valeurs NULL, c'est dans la norme SQL il me semble
    Au pire en lieu et place de ta clé primaire tu peux simplement créer un index unique sur les mêmes colonnes, les indexes autorisant des NULL dans les colonnes indexées
    La théorie, c'est quand on sait tout mais que rien ne fonctionne.
    La pratique, c'est quand tout fonctionne mais que personne ne sait pourquoi.
    Ici, nous avons réuni théorie et pratique : Rien ne fonctionne ... et personne ne sait pourquoi !

    Réplication de base avec Postgresql : http://scheu.developpez.com/tutoriel.../log-shipping/

  3. #3
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 998
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 998
    Billets dans le blog
    6
    Par défaut
    Une clé primaire ne peut pas comporter de valeurs NULL, c'est dans la norme SQL il me semble
    Non seulement c'est dans la norme, mais cela découle de la modélisation de données. Avoir une colonne nullable dans une clef est aussi stupide que d'avoir un N° de téléphone incomplet. Il ne pourra JAMAIS vous servir !
    Quand à rajoute une colonne à la clef c'est aussi stupide si cela n'est pas nécessaire à la logique sémantique du modèle.

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

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

Discussions similaires

  1. Déterminer si un champ est une clé primaire
    Par fbalien dans le forum Bases de données
    Réponses: 5
    Dernier message: 23/09/2019, 10h19
  2. [Doctrine] Clefs primaires multi champs (table de liaison)
    Par froger4 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 23/10/2012, 15h28
  3. valeur par defaut d'un champ cle primaire
    Par amne26 dans le forum IHM
    Réponses: 1
    Dernier message: 09/10/2008, 06h10
  4. [EJB3] clé primaire multi champs
    Par serj' dans le forum JPA
    Réponses: 4
    Dernier message: 26/02/2008, 18h59
  5. [clé primaire composée] Champ NULL
    Par hair_peace dans le forum Oracle
    Réponses: 11
    Dernier message: 13/12/2005, 16h09

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