Ja, dit is het verwachte gedrag in MySQL (in feite ook in ANSI-92). NULL
waarden worden niet als gelijke waarden behandeld in unieke sleutels en primaire sleutels mogen geen NULL
bevatten waarden per definitie.
(http://www.contrib.andrew.cmu.edu /~shadow/sql/sql1992.txt )
Aangezien je de externe sleutelbeperking op de nullable-kolom hebt, zou ik willen voorstellen om een dummy-waarde toe te voegen aan de bovenliggende tabellen waarin staat dat de ouder niet relevant of niet bepaald is (de records waar ID =0 misschien is) en voeg de NIET NULL
beperking van de kolom. (Bovendien kunt u de dummy-waarde toevoegen als DEFAULT
).