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 15/04/2008, 18h10   #1
Futur Membre du Club
 
Inscription : février 2004
Messages : 61
Détails du profil
Informations forums :
Inscription : février 2004
Messages : 61
Points : 18
Points : 18
Par défaut CONSTRAINT UNIQUE avec abs()

Bonjour,

Je debute dans la création d'un BDD postgresql.

J'ai 2 champs, le premier texte le second integer. j'arrive a cree une contraite du genre
UNIQUE(1er_champ,2em_champ)

Mais voila, je souhaite utiliser la valeur absolu sur le second champ.
Mais UNIQUE(1er_champ,abs(2em_champ)) ou UNIQUE(1er_champ,@(2em_champ))
ne fonctionne pas.

Merci pour toute info.

PS: autre point UNIQUE & PRIMARY KEY cela revient-il au même?
benoit_iund est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/04/2008, 10h05   #2
Membre Expert
 
Avatar de scheu
 
Inscription : juin 2007
Messages : 1 497
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 1 497
Points : 1 485
Points : 1 485
Essaie de créer un index unique sur (1er_champ,abs(2em_champ))
Pour ta question, une PK est toujours unique, par contre il n'y a qu'une PK au maximum par table
Par contre il peut y avoir pour une même tables plusieurs contraintes uniques sur différentes colonnes (oui différents groupes de colonnes)
__________________
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/
scheu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/05/2008, 19h24   #3
Futur Membre du Club
 
Inscription : février 2004
Messages : 61
Détails du profil
Informations forums :
Inscription : février 2004
Messages : 61
Points : 18
Points : 18
merci de ta réponse. Mais je ne vois pas.

En plus j'ai laissé ce projet de coté quelque temps et j'ai déja tout oublié.


Donc comme tu me l'a dit, J'essai...
benoit_iund est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/06/2008, 18h26   #4
Membre Expert
 
Avatar de scheu
 
Inscription : juin 2007
Messages : 1 497
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 1 497
Points : 1 485
Points : 1 485
Tu peux créer une colonne en plus dans ta table qui serait la valeur absolue de ton 2ème champ (alimentée via trigger sur la table, qui à chaque insert/update renseigne cette colonne), et faire ta contrainte sur cette colonne
Je ne vois pas d'autre solution
__________________
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/
scheu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/06/2008, 18h46   #5
Futur Membre du Club
 
Inscription : février 2004
Messages : 61
Détails du profil
Informations forums :
Inscription : février 2004
Messages : 61
Points : 18
Points : 18
c'est une bonne idée...

Mais le fait de mettre +/- id_user etais une astuce pour eviter d'ajouté une colonne.
benoit_iund est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/06/2008, 18h59   #6
Expert Confirmé
 
Homme
Inscription : septembre 2006
Messages : 2 293
Détails du profil
Informations personnelles :
Sexe : Homme

Informations forums :
Inscription : septembre 2006
Messages : 2 293
Points : 2 741
Points : 2 741
Citation:
Envoyé par benoit_iund Voir le message
PS: autre point UNIQUE & PRIMARY KEY cela revient-il au même?
non

les 2 expriment une contrainte d'unicité mais seule la PK peut être référencée à partir d'une autre table en tant que FOREIGN KEY
JeitEmgie est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/06/2008, 11h11   #7
Futur Membre du Club
 
Inscription : février 2004
Messages : 61
Détails du profil
Informations forums :
Inscription : février 2004
Messages : 61
Points : 18
Points : 18
Bon je vais me résigné ...

et ajouter une colonne.


Merci
benoit_iund 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 15h21.


 
 
 
 
Partenaires

Hébergement Web