PostgreSQL
La base de données la plus sophistiquée au monde.

Ouverture de session

Navigation

Contactez-nous

Administration du site :
"equipe chez postgresqlfr point org"

Contact presse :
"fr chez postgresql point org"

Contact association :
"bureau chez postgresqlfr point org"

Questions PostgreSQL :
 IRC :
  serveur irc.freenode.net
  canal #postgresqlfr

Recherche

Accéder aux archives

« Octobre 2008  
Lun Mar Mer Jeu Ven Sam Dim
  2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31  

Syndication

Flux XML

Sondage

Quelle est la version de PostgreSQL la plus répandue sur vos serveurs ?
8.3
10%
8.2
42%
8.1
40%
8.0
2%
7.4
6%
7.3 ou antérieure
0%
Nombre de votes: 48

Contraintes sur clés étrangères...

Technique - général | Contraintes sur clés étrangères...

Par sek le 06/12/2005 - 19:38

Bonjour à tous, je suis débutant dans le secteur base de donnée et je me pose une question :
Je développe une base dans laquelle l'un des table implique une contrainte specifique sur une autre
Je pense que c'est plus simple de vous donner un exemple

table 1 :
ID integer (en SERIAL et clé primère)
test boolean

table 2 :
ID interger (pareil qu'au dessus)
MID integer --------> c'est ici que ce situe l'astuce

en fait MID est une clé etrangère de ID de la table 1, jusque la rien de bien compliqué, mais il faurait aussi que pour toute clé de cette table 1 présente dans la table 2 la valeure du boolean test soit de true. Je ne sais aps s'il est possible d'exprimer cette contrainte et c'est pour cela que je m'en remet à vous, je n'ai vu aucune indication sur le sujet dans la documentation online de postgresql. Si qqun sait si cela est faisable ou non et en connait le "code" si c'est le cas, je l'en remercie fortement

++

Sek

Options d'affichage des commentaires

Sélectionnez la méthode d'affichage des commentaires que vous préférez, puis cliquez sur "Sauvegarder les paramètres" pour activer vos changements.

gere un declencheur create

merylud/ = 7 Décembre, 2005 - 16:45

gere un declencheur

create trigger
on table2
before insert

declare val boolean

select test into val
from table1
where ID=NEW.MID

si val est vrai alors
rollback
Fin si

Bon courage, il manque les point virgule et le roolback n'est pas géré il faut faire un RAISE EXCEPTION.

De plus le code de ton trigger doit être géré dans une fonction Trigger et doit renvoyé un "trigger".

@ plus


© PostgreSQLFr, tous droits réservés.
Site déclaré à la CNIL sous le numéro 1074678, conformément à la Loi en vigueur.