Rumah >pangkalan data >tutorial mysql >Mengapa Penyata INSERT SQL Server Saya Bercanggah dengan Kekangan KUNCI ASING?

Mengapa Penyata INSERT SQL Server Saya Bercanggah dengan Kekangan KUNCI ASING?

Linda Hamilton
Linda Hamiltonasal
2025-01-20 03:57:11575semak imbas

Why Does My SQL Server INSERT Statement Conflict with a FOREIGN KEY Constraint?

Menyelesaikan masalah Ralat Kekangan KUNCI ASING SQL Server

SQL Server kerap menghasilkan ralat "INSERT statement bercanggah dengan FOREIGN KEY constraint". Ini berlaku apabila anda cuba memasukkan data ke dalam jadual yang dipautkan dengan yang lain melalui hubungan kunci asing.

Masalahnya:

Ralat ini timbul semasa operasi INSERT jika nilai kunci asing dalam jadual sasaran tidak sepadan dengan mana-mana kunci utama sedia ada dalam jadual yang dirujuk.

Contoh Mesej Ralat:

<code>Msg 547, Level 16, State 0, Line 1
The INSERT statement conflicted with the FOREIGN KEY constraint "FK_Sup_Item_Sup_Item_Cat". The conflict occurred in database "dev_bo", table "dbo.Sup_Item_Cat". The statement has been terminated.</code>

Mesej ini menunjukkan percubaan memasukkan ke dalam jadual Sup_Item gagal kerana sup_item_cat_id nilai kunci asing ('123123') tidak wujud sebagai kunci utama dalam jadual Sup_Item_Cat.

Penyelesaian:

Pembetulan adalah mudah: pastikan nilai kunci asing yang anda masukkan sepadan dengan kunci utama sedia ada dalam jadual yang dirujuk. Dalam contoh kami, padanan sup_item_cat_id mesti sudah wujud dalam Sup_Item_Cat.

Gunakan perintah sp_help SQL Server Management Studio untuk memeriksa kekangan kunci asing dan jadual berkaitan. Sebagai contoh, sp_help 'dbo.Sup_Item_Cat' memberikan butiran tentang kekangan kunci asing untuk jadual itu, membantu anda mengenal pasti jadual dan lajur yang dirujuk, dan mengesahkan pernyataan INSERT anda menggunakan data yang sah.

Atas ialah kandungan terperinci Mengapa Penyata INSERT SQL Server Saya Bercanggah dengan Kekangan KUNCI ASING?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn