Да, това е очакваното поведение в MySQL (всъщност и в ANSI-92). NULL
стойностите не се третират като равни стойности в уникалните ключове и първичните ключове не могат да съдържат NULL
стойности по дефиниция.
(http://www.contrib.andrew.cmu.edu /~shadow/sql/sql1992.txt )
Тъй като имате ограничението за външния ключ върху колоната с нула, бих предложил да добавите фиктивна стойност към родителските таблици, която посочва факта, че родителят е ирелевантен или не е определен (записите, където ID =0 може би) и да добавите NOT NULL
ограничение към колоната. (Освен това можете да добавите фиктивната стойност като DEFAULT
).