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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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+