Clés etrangères sous MySQL
Bonsoir,
je pose une question qui revient peut etre souvent mais malgre qq recherches je n ai pas vraiment trouvé de reponses satisfaisantes.
Voila, je vous expose ma problematique qui est assez simple et assez souvent vu :
creation de plusieurs tables en cascade facon arborescence et je voudrais y inclure un champ qui indique si un user verrouille le repertoire, donc cela veut dire qu a la creation du repertoire le user n est pas renseigné....ce qui se fera plus tard.
J'ai donc crée une clé etrangere sur le champ de ce style :
Code:
1 2
|
CONSTRAINT `fkOwner` FOREIGN KEY (`OWNER`) REFERENCES `dbusers` (`ID`) avec ID cle primaine de ma table dbusers |
et mon champ OWNER est definit de la sorte sachant que je definis toutes mes cles primaires de table en bigint unsigned not null :
Code:
1 2
|
`OWNER` bigint(20) unsigned default NULL COMMENT 'Index user' |
j'ai mis NULL pour l insertion non renseignée du départ.
Pourtant cela ne semble pas fonctionner.
Il n'est pas possible de créer une cle etrangere sur un champ non renseigné à l'insertion ? ou dois je mettre NOT NULL default 0 ?
ou devons nous modifier les options de "mise à jour" a SET NULL par exemple au lieu de RESTRICT ?
Bref si qqun peut me filer un tuyau.
Un grand merci d avance.
A+