Không nên đặt ràng buộc khóa ngoại thành 0, vì nếu bạn làm vậy, cơ sở dữ liệu của bạn sẽ không đảm bảo rằng nó không vi phạm tính toàn vẹn tham chiếu. Điều này có thể dẫn đến dữ liệu không chính xác, sai lệch hoặc không đầy đủ.
Bạn tạo một khóa ngoại vì một lý do: bởi vì tất cả các giá trị trong cột con sẽ giống như một giá trị trong cột cha. Nếu không có ràng buộc khóa ngoại, một hàng con có thể có một giá trị không nằm trong hàng cha, điều này sẽ dẫn đến dữ liệu không chính xác.
Chẳng hạn, giả sử bạn có một trang web để sinh viên đăng nhập và mọi sinh viên phải đăng ký tài khoản với tư cách là người dùng. Bạn có một bảng cho id người dùng, với id người dùng làm khóa chính; và một bảng khác cho các tài khoản sinh viên, với id sinh viên là một cột. Vì mỗi sinh viên phải có id người dùng, sẽ rất hợp lý khi biến id sinh viên từ bảng tài khoản sinh viên thành khóa ngoại tham chiếu id người dùng khóa chính trong bảng id người dùng. Nếu không có kiểm tra khóa ngoại, một sinh viên cuối cùng có thể có id sinh viên và không có id người dùng, điều đó có nghĩa là sinh viên có thể có tài khoản mà không phải là người dùng, điều đó là sai.
Hãy tưởng tượng nếu nó xảy ra với một lượng lớn dữ liệu. Đó là lý do tại sao bạn cần kiểm tra khóa ngoại.
Tốt nhất là tìm ra nguyên nhân gây ra lỗi. Rất có thể, bạn đang cố xóa khỏi hàng cha mà không xóa khỏi hàng con. Hãy thử xóa từ hàng con trước khi xóa khỏi hàng cha.