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

Informix Discussion :

contrainte d'unicité et valeurs nulles


Sujet :

Informix

  1. #1
    Nouveau membre du Club
    Inscrit en
    Avril 2007
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 36
    Points : 34
    Points
    34
    Par défaut contrainte d'unicité et valeurs nulles
    Bonjour a tous,

    Je voudrais ajouter une contrainte d'unicité dans un champ (numéro d'insee) d'une table qui contient des valeurs nulles.

    Or Informix me jette lorsque je veut créer un index unique ou une contrainte unique sur ce champ : il n'accepte pas dans un index unique plus d'une valeur nulle

    Est-ce quelqu'un a déja eu ce cas ?

    Merci d'avance pour votre aide

  2. #2
    Modérateur
    Avatar de gangsoleil
    Homme Profil pro
    Manager / Cyber Sécurité
    Inscrit en
    Mai 2004
    Messages
    10 148
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Manager / Cyber Sécurité

    Informations forums :
    Inscription : Mai 2004
    Messages : 10 148
    Points : 28 113
    Points
    28 113
    Par défaut
    Bonjour,

    Est-ce que tu pourrais éclairer ton explication d'un exemple ? En effet, je ne suis pas sur de très bien comprendre ce que tu souhaites faire, et ne pourrais donc te dire si cela est normal ou non.

    Je vais cependant essayer de répondre à ce que j'ai compris :
    Le fait d'ajouter une contrainte d'unicité sur une clef implique que les valeurs de cette colonne seront toutes différentes. Il est donc logique qu'Informix, comme n'importe quel SGBD, refuse que tu aies plusieurs valeurs nulles.
    Le fait que ta valeur soit nulle ou pas ne se pose pas ici : contrainte d'unicité -> une seule et unique valeur.
    "La route est longue, mais le chemin est libre" -- https://framasoft.org/
    Les règles du forum

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

    Je propose de créer une vue de la table TABLE ne tenant compte que des enregistrements dont le code insee est renseigné.

    Il suffira alors de lier la TABLE et la vue sur le code insee et tester que lorsque TABLE.insee existe, insee.insee n'existe pas.

    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
    {-----------------------------------------------------------------------------}
    {
    drop   view insee;
    }
    {-----------------------------------------------------------------------------}
     
    create view insee
    as select *
    from  TABLE
    where TABLE.insee is not null;
     
    revoke all    on insee from public;
     
    grant  select on insee to public;
    grant  update on insee to public;
    grant  insert on insee to public;
     
    {-----------------------------------------------------------------------------}

Discussions similaires

  1. contrainte de clef étrangère valeur NULL
    Par danytro dans le forum Requêtes
    Réponses: 3
    Dernier message: 22/11/2012, 00h37
  2. [XSD] Contrainte sur élément : valeur nulle ou de longueur 13
    Par lecail65 dans le forum Valider
    Réponses: 2
    Dernier message: 23/11/2011, 12h33
  3. Réponses: 1
    Dernier message: 27/07/2011, 01h42
  4. Contrainte ujnique avec multiple valeurs NULL
    Par dev-man dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 28/06/2008, 00h39
  5. Valeurs Nulles ou Valeurs à Zéro
    Par LLaurent dans le forum XMLRAD
    Réponses: 5
    Dernier message: 30/07/2003, 12h40

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