Pouvez colonnes de la table avec une Clé Étrangère d'être NULLE?

J'ai une table qui a plusieurs ID colonnes à d'autres tables.

Je veux une clé étrangère à la force de l'intégrité seulement si je mets de données là-bas. Si je fais une mise à jour plus tard pour remplir cette colonne, alors il doit également vérifier la contrainte.

(Il s'agit probablement de la base de données du serveur de personne à charge, je suis en utilisant MySQL & type de table InnoDB)

Je crois que c'est une attente raisonnable, mais corrigez-moi si je me trompe.

  • Je ne sais pas à propos de MySQL, MS SQL Server permet de clés étrangères pour accepter les valeurs null avec la sémantique de ce que vous voulez. Je m'attends c'est le comportement standard.
  • la clé étrangère, ne peut pas être null par défaut dans mySQL, la raison est simple, si vous faites référence à quelque chose et de vous laisser null, vous perdrez de l'intégrité des données. lorsque vous créez le tableau autoriser les valeurs null à PAS, puis appliquer la contrainte de clé étrangère. Vous ne pouvez pas définir la valeur null en cas de mise à jour, il doit vous envoyer une erreur, mais vous pouvez (vous devez), il suffit de ne pas mettre à jour cette colonne et de mettre à jour uniquement les champs dont vous avez besoin pour changer.
InformationsquelleAutor bender | 2010-03-02