Précédent   Forum des professionnels en informatique > Bases de données > PostgreSQL
PostgreSQL Forum PostgreSQL. Avant de poster -> F.A.Q PostGreSQL Tutoriels PostGreSQL
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 23/11/2004, 10h08   #1
Candidat au titre de Membre du Club
 
Inscription : août 2004
Messages : 30
Détails du profil
Informations forums :
Inscription : août 2004
Messages : 30
Points : 14
Points : 14
Par défaut contrainte d'unicité un peu spéciale....

Salut,
Je voudrais mettre une contrainte sur deux champs d'un type un peu spécial....
j'ai un champ d'entiers pouvant etre répétés plusieurs fois, et un champ de booleéens. Ca donne a peu prêt ca:
Code :
1
2
3
4
5
6
7
id bool
1 true
1 false
1 false
2 true
2 false
...
Je voudrais faire une contrainte qui ne m'autorise qu'un seul "true" pour chaque id.
Par contre je pourrais avoir plusieurs "false" par un id....donc ca ressemble à une contrainte d'unicité sur les deux champs, mais pas vraiment.
Si quelqu'un a une idée...
++
Jul.
bdkiller est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/11/2004, 17h39   #2
Membre chevronné
 
Avatar de Spoutnik
 
Homme
Inscription : octobre 2003
Messages : 668
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 32
Localisation : Etats-Unis

Informations forums :
Inscription : octobre 2003
Messages : 668
Points : 746
Points : 746
je ferai un trigger, mais je ne sais pas si c est la meilleure solution
Spoutnik est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/11/2004, 17h54   #3
Candidat au titre de Membre du Club
 
Inscription : août 2004
Messages : 30
Détails du profil
Informations forums :
Inscription : août 2004
Messages : 30
Points : 14
Points : 14
en fait j'ai trouvé!
il faut utiliser un index partiel.
Dans mon cas ca donnerait un truc du genre:
Code :
CREATE UNIQUE INDEX partial_idx ON bidon(id) WHERE bool;
L'index compte uniquement les lignes vérifiant le critère "bool".
Et du coup, c'est aussi sur ces lignes qu'il applique le critère d'unicite!

Plus d'infos en bas de la page suivante:
http://www.postgresql.org/docs/7.3/s...s-partial.html

Merci qd même.
++
Jul.
bdkiller est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 08h28.


 
 
 
 
Partenaires

Hébergement Web