Saya mendapatkan kesalahan berikut. Bisakah bantu saya?
Msg 547, Level 16, State 0, Line 1
Pernyataan INSERT bertentangan dengan batasan KUNCI ASING "FK_Sup_Item_Sup_Item_Cat". Konflik terjadi di database "dev_bo", table "dbo.Sup_Item_Cat". Pernyataan itu telah dihentikan.
Kode:
insert into sup_item (supplier_id, sup_item_id, name, sup_item_cat_id,
status_code, last_modified_user_id, last_modified_timestamp, client_id)
values (10162425, 10, 'jaiso', '123123',
'a', '12', '2010-12-12', '1062425')
Kolom terakhir client_id
menyebabkan kesalahan. Saya mencoba untuk meletakkan nilai yang sudah ada di dbo.Sup_Item_Cat
dalam kolom, sesuai dengan sup_item .. tetapi tidak ada sukacita :-(
sql
sql-server
sql-server-2005
foreign-keys
SmartestVEGA
sumber
sumber
Sup_Item_Cat
tabel Anda . Tidak banyak lagi yang bisa dikatakan tentang itu.SELECT * FROM Sup_Item_Cat WHERE sup_item_cat_id = '123123'
mengembalikan hasil?Jawaban:
Di meja Anda
dbo.Sup_Item_Cat
, ini memiliki referensi kunci asing ke tabel lain. Cara kerja FK adalah tidak dapat memiliki nilai di kolom itu yang tidak juga di kolom kunci utama dari tabel yang direferensikan.Jika Anda memiliki SQL Server Management Studio, buka dan
sp_help
'dbo.Sup_Item_Cat
'. Lihat kolom tempat FK berada, dan kolom mana tabel yang dirujuk. Anda memasukkan beberapa data buruk.Beri tahu saya jika Anda perlu penjelasan lebih baik!
sumber
Saya memiliki masalah ini sendiri, mengenai pesan kesalahan yang diterima mencoba mengisi bidang kunci asing. Saya berakhir di halaman ini dengan harapan menemukan jawabannya. Jawaban yang diperiksa pada halaman ini memang yang benar, sayangnya saya merasa bahwa jawabannya agak tidak lengkap untuk orang-orang yang tidak terbiasa dengan SQL. Saya cukup pintar dalam menulis kode tetapi pertanyaan SQL baru bagi saya serta membangun tabel database.
Meskipun jawaban yang diperiksa benar:
Apa yang hilang dari jawaban ini adalah sederhana;
Cara lain untuk mengatakannya adalah;
Singkatnya, banyak tutorial tampaknya membahas fakta ini sehingga jika Anda mencoba sendiri dan tidak menyadari ada urutan operasi, maka Anda akan mendapatkan kesalahan ini. Secara alami setelah menambahkan data kunci utama, data kunci asing Anda di tabel anak harus sesuai dengan bidang kunci utama di tabel induk, jika tidak, Anda masih akan mendapatkan kesalahan ini.
Jika ada yang membaca sejauh ini. Saya harap ini membantu membuat jawaban yang diperiksa lebih jelas. Saya tahu ada beberapa di antara Anda yang mungkin merasa bahwa hal semacam ini cukup mudah dan membuka buku akan menjawab pertanyaan ini sebelum diposting, tetapi kenyataannya adalah tidak semua orang belajar dengan cara yang sama.
sumber
Anda mencoba menyisipkan catatan dengan nilai di kolom kunci asing yang tidak ada di tabel asing.
Misalnya: Jika Anda memiliki tabel Buku dan Penulis di mana Buku memiliki batasan kunci asing pada tabel Penulis dan Anda mencoba untuk memasukkan catatan buku yang tidak ada catatan penulisnya.
sumber
Anda harus memposting pernyataan Anda untuk klarifikasi lebih lanjut. Tapi...
Kesalahan itu berarti bahwa tabel tempat Anda memasukkan data memiliki hubungan kunci asing dengan tabel lain. Sebelum data dapat dimasukkan, nilai dalam bidang kunci asing harus ada di tabel lainnya terlebih dahulu.
sumber
Masalahnya bukan dengan client_id dari apa yang bisa saya lihat. Sepertinya masalah dengan kolom ke-4, sup_item_cat_id
Aku akan lari
dan perhatikan kolom constraint_keys yang dikembalikan untuk kunci asing FK_Sup_Item_Sup_Item_Cat untuk mengonfirmasi kolom mana yang merupakan masalah aktual, tetapi saya cukup yakin bukan kolom yang sedang Anda coba perbaiki. Selain itu '123123' juga terlihat mencurigakan.
sumber
Sesuatu yang saya temukan adalah bahwa semua bidang harus cocok dengan PERSIS.
Misalnya, mengirim 'dog cat' tidak sama dengan mengirim 'catdog'.
Apa yang saya lakukan untuk memecahkan masalah ini adalah untuk skrip kode FK dari tabel saya memasukkan data ke dalam, perhatikan "Kunci Asing" yang memiliki kendala (dalam kasus saya ada 2) dan pastikan 2 nilai bidang yang cocok PERSIS karena mereka berada di meja yang melemparkan kesalahan Kendala FK.
Setelah saya memperbaiki 2 bidang memberikan masalah saya, hidup itu baik!
Jika Anda membutuhkan penjelasan yang lebih baik, beri tahu saya.
sumber
Saya juga mendapat kesalahan yang sama dalam Kode SQL saya, Solusi ini berfungsi untuk saya,
Periksa data di Tabel Utama Mungkin Anda memasukkan nilai kolom yang tidak ada di kolom kunci utama.
sumber
Artinya persis seperti yang dikatakannya. Anda mencoba menyisipkan nilai ke dalam kolom yang memiliki batasan FK di atasnya yang tidak cocok dengan nilai apa pun di tabel pencarian.
sumber
Periksa bidang dalam hubungan kunci asing didefinisikan untuk. SQL Server Management Studio mungkin tidak memiliki bidang yang Anda inginkan dipilih ketika Anda mendefinisikan hubungan. Ini telah membakar saya di masa lalu.
sumber
sumber
Data tabel induk yang hilang menyebabkan masalah. Dalam masalah Anda, tidak tersedianya data dalam "dbo.Sup_Item_Cat" menyebabkan masalah
sumber
Saya memiliki masalah yang sama ketika saya menggunakan migrasi code-first untuk membangun database saya untuk aplikasi MVC 5. Saya akhirnya menemukan metode seed di file configuration.cs saya yang menyebabkan masalah. Metode seed saya adalah membuat entri tabel untuk tabel yang berisi kunci asing sebelum membuat entri dengan kunci utama yang cocok.
sumber
Saya mengalami masalah ini ketika bidang nilai sisipan saya berisi tab dan spasi yang tidak terlihat dengan mata telanjang. Saya telah membuat daftar nilai saya di Excel, menyalin, dan menempelkannya ke SQL, dan menjalankan kueri untuk menemukan ketidakcocokan pada bidang FK saya.
Kueri pertandingan tidak mendeteksi ada tab dan spasi di bidang FK saya, tetapi INSERT mengenali mereka dan terus menghasilkan kesalahan.
Saya menguji lagi dengan menyalin konten bidang FK dalam satu catatan dan menempelkannya ke dalam kueri sisipan. Ketika catatan itu juga gagal, saya melihat lebih dekat pada data dan akhirnya mendeteksi tab / spasi.
Setelah saya membersihkan tab / spasi yang dihapus, masalah saya teratasi. Semoga ini bisa membantu seseorang!
sumber