Có, đây là hành vi mong đợi trong MySQL (trên thực tế là trong ANSI-92). NULL
các giá trị không được coi là giá trị bằng nhau trong các khóa duy nhất và khóa chính không được chứa NULL
giá trị theo định nghĩa.
( http://www.contrib.andrew.cmu.edu /~shadow/sql/sql1992.txt )
Vì bạn có ràng buộc khóa ngoại trên cột nullable, tôi khuyên bạn nên thêm một giá trị giả vào các bảng mẹ, trong đó nêu thực tế là bảng mẹ không liên quan hoặc không được xác định (các bản ghi mà ID =0 có thể) và thêm mã <> KHÔNG ĐẦY ĐỦ ràng buộc vào cột. (Ngoài ra, bạn có thể thêm giá trị giả dưới dạng DEFAULT
).