Ini bukan ide yang baik untuk menetapkan batasan kunci asing ke 0, karena jika Anda melakukannya, database Anda tidak akan memastikan itu tidak melanggar integritas referensial. Ini dapat menyebabkan data tidak akurat, menyesatkan, atau tidak lengkap.
Anda membuat kunci asing karena suatu alasan: karena semua nilai dalam kolom anak harus sama dengan nilai di kolom induk. Jika tidak ada batasan kunci asing, baris anak dapat memiliki nilai yang tidak ada di baris induk, yang akan menyebabkan data tidak akurat.
Misalnya, katakanlah Anda memiliki situs web untuk siswa masuk dan setiap siswa harus mendaftar untuk akun sebagai pengguna. Anda memiliki satu tabel untuk id pengguna, dengan id pengguna sebagai kunci utama; dan tabel lain untuk akun siswa, dengan id siswa sebagai kolom. Karena setiap siswa harus memiliki id pengguna, masuk akal untuk membuat id siswa dari tabel akun siswa kunci asing yang merujuk id pengguna kunci utama di tabel id pengguna. Jika tidak ada pemeriksaan kunci asing, siswa dapat memiliki ID siswa dan ID pengguna, yang berarti siswa dapat memperoleh akun tanpa menjadi pengguna, yang salah.
Bayangkan jika itu terjadi pada sejumlah besar data. Itu sebabnya Anda memerlukan pemeriksaan kunci asing.
Yang terbaik adalah mencari tahu apa yang menyebabkan kesalahan. Kemungkinan besar, Anda mencoba untuk menghapus dari baris induk tanpa menghapus dari baris anak. Coba hapus dari baris anak sebelum menghapus dari baris induk.