Ja, das ist das erwartete Verhalten in MySQL (tatsächlich auch in ANSI-92). NULL
Werte werden in eindeutigen Schlüsseln nicht als gleiche Werte behandelt und Primärschlüssel dürfen nicht NULL
enthalten Werte per Definition.
(http://www.contrib.andrew.cmu.edu /~shadow/sql/sql1992.txt )
Da Sie die Fremdschlüsseleinschränkung für die Nullable-Spalte haben, würde ich vorschlagen, den übergeordneten Tabellen einen Dummy-Wert hinzuzufügen, der angibt, dass das übergeordnete Element irrelevant oder nicht bestimmt ist (die Datensätze mit ID =0 möglicherweise) und den NOT NULL
Beschränkung auf die Spalte. (Zusätzlich können Sie den Dummy-Wert als DEFAULT
hinzufügen ).