Condition sur null de deux attributs - SQL/NoSQL - Programmation
Marsh Posté le 22-03-2007 à 17:23:06
ben un trigger, ça se fait en 10 secondes.
"trigger oracle" dans google et à mon avis tu vas vite trouver comment faire.
ensuite, pour le CHECK, jamais utilisé, je ne sais pas si tu veux t'en sortir avec. c'est peut-être plus rapide que les triggers, mais c'est vachement plus limité, donc je fais tout habituellement par trigger.
Marsh Posté le 23-03-2007 à 07:59:42
Trigger +1
A part ça je vois pas comment niveau BdD on pourrait faire
autrement ...
Marsh Posté le 23-03-2007 à 17:47:51
Trigger, donc.
Mais j'aurai bien vu une contrainte du style
Code :
|
Après je sais pas si la syntaxe est correcte, je testerai quand même quand j'aurai le temps.
Marsh Posté le 29-03-2007 à 16:33:31
Bizarre d'avoir deux colonne dans une table dont une seule des deux doit etre renseignée ?
Il serait plus logique d'avoir une seule colonne att plutot que attA et attb et d'avoir une colonne (un booleen) qui indique si att est de type "A" ou "B", non ?
Marsh Posté le 31-03-2007 à 12:43:49
Je me range de l'avis de Bazile, ça n'a pas vraiment de sens d'avoir un champ vide sur chaque tuple.
tu es sûr de ton modèle de données ?
Marsh Posté le 21-03-2007 à 23:15:04
Bonjour,
Je souhaite mettre en place une contrainte d'intégrité sur deux attributs pouvant être nuls, mais pas les deux à la fois, ni aucun des deux.
Je m'explique :
Quand attA est null, attB doit être renseigné. Et inversement. Les deux ne peuvent être null en même temps. Les deux ne peuvent être renseignés en même temps.
En gros, il me faudrait un XOR (ou l'inverse, je confonds), mais comme ça n'existe apparement pas dans la norme SQL, je dois trouver une autre solution, qui peut être implémentée avec une contrainte CHECK ou un trigger.
Si vous avez une idée, toute proposition est la bienvenue
Merci d'avance.
PS : Le SGBD est Oracle 10gr2