Réponse courte: Oui, elle peut être NULL ou en double Je veux expliquer pourquoi une clé étrangère peut avoir besoin d'être nulle ou peut avoir besoin d'être unique ou non unique. Rappelez-vous d'abord qu'une clé étrangère nécessite simplement que la valeur de ce champ existe d'abord dans une table différente (la table parent). C'est tout ce qu'un FK est par définition.
La clé étrangère accepte-t-elle une valeur nulle ?
La clé étrangère peut se voir attribuer un nom de contrainte. … Une clé étrangère contenant des valeurs nulles ne peut pas correspondre aux valeurs d'une clé parent, car une clé parent, par définition, ne peut avoir aucune valeur nulle. Cependant, une valeur de clé étrangère nulle est toujours valide, quelle que soit la valeur de l'une de ses parties non nulles.
Pourquoi les valeurs nulles sont autorisées dans la clé étrangère ?
Définition des relations entre les tables parent et enfant
Aucune contrainte sur la clé étrangère Lorsqu'aucune autre contrainte n'est définie sur la clé étrangère, n'importe quel nombre de lignes de la table enfant peut référencer la même valeur de clé parent Ce modèle autorise les valeurs nulles dans la clé étrangère.
Comment puis-je autoriser null dans une clé étrangère ?
Étant donné que la contrainte de clé étrangère nécessite que la clé référencée soit unique, le mieux que vous puissiez faire est d'autoriser une ligne avec une clé NULL. Dans ce cas, vous devrez remplacer la contrainte de clé primaire par une contrainte (ou index) unique, et autoriser la colonne Pays. country_id doit être NULL.
Pouvons-nous insérer des valeurs nulles dans la colonne de clé étrangère ?
Oui, Vous pouvez avoir une valeur nulle dans la colonne de clé étrangère.