Précédent   Forum des professionnels en informatique > Bases de données > Autres SGBD > Informix
Informix Forum d'entraide Informix
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 12/04/2007, 10h49   #1
Invité de passage
 
Inscription : avril 2007
Messages : 1
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 1
Points : 0
Points : 0
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
marc85 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/04/2007, 13h58   #2
Modérateur
 
Avatar de gangsoleil
 
R&D en systemes informatiques bas niveau Unix/Linux
Inscription : mai 2004
Messages : 5 497
Détails du profil
Informations personnelles :
Âge : 31
Localisation : France, Isère (Rhône Alpes)

Informations professionnelles :
Activité : R&D en systemes informatiques bas niveau Unix/Linux

Informations forums :
Inscription : mai 2004
Messages : 5 497
Points : 9 677
Points : 9 677
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.
__________________
Modérateur "C", "Informatique Générale & Hardware" et "Unix"
Les règles du forum
gangsoleil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/11/2007, 21h47   #3
Membre habitué
 
Inscription : novembre 2007
Messages : 103
Détails du profil
Informations personnelles :
Âge : 64
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : novembre 2007
Messages : 103
Points : 109
Points : 109
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 :
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;
 
{-----------------------------------------------------------------------------}
IFA2377 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 13h20.


 
 
 
 
Partenaires

Hébergement Web