Postgresql 8.0 et contraintes d'intégrités avec subquery

Postgresql 8.0 et contraintes d'intégrités avec subquery - SQL/NoSQL - Programmation

Marsh Posté le 10-05-2005 à 12:05:03    

Bonjour,
 
je me casse la tête depuis des jours a comprendre pourquoi postgresql refuse d'ajouter ce type de contrainte :
 


alter table adresses add constraint ID_adresses
     check(exists(select * from clients
                  where clients.id_adresse = id_adresse));


 
De plus il s'agit de code généré par un logiciel d'UML pour postgresql !
Après des recherche sur google c'est sencé fonctionner, donc je comprends pas trop pourquoi quand j'essaie de la creer il me sort ca :  
 
Erreur SQL :
 

ERROR:  cannot use subquery in check constraint
 
In statement:
 
alter table adresses add constraint ID_adresses
     check(exists(select * from clients where clients.id_adresse = id_adresse));


 
y a-t-il une alternative ?  
Pourquoi ne veut-il pas de sous requete dans la contrainte alors que c'est sencé être possible ???
 
Help ! j'en peux plus :'(


Message édité par Gat$ le 10-05-2005 à 12:06:41
Reply

Marsh Posté le 10-05-2005 à 12:05:03   

Reply

Marsh Posté le 10-05-2005 à 12:18:50    

ton logiciel se gourre. On ne peut pas faire de subquery dans un check. Mais ta contrainte est typiquement une contrainte d'intégrité référentielle. Utilise plutôt le mot clef REFERENCES

Reply

Marsh Posté le 10-05-2005 à 12:23:03    

Salut et merci pour ta réponse, que dois-je changer dans ce bout de code pour faire ce que tu dis ?

Reply

Marsh Posté le 10-05-2005 à 12:39:32    

Je trouve rien a ce sujet references etant un mot très courant .
 
Tu peux m'aider stp?

Reply

Marsh Posté le 10-05-2005 à 12:42:55    

Reply

Marsh Posté le 10-05-2005 à 13:09:07    

Ok ca a l'air de marcher, merci.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed