Rumah >pangkalan data >tutorial mysql >Mengapa Kekangan Utama Asing Pelayan SQL Saya Gagal, dan Bagaimana Saya Boleh Membetulkannya?

Mengapa Kekangan Utama Asing Pelayan SQL Saya Gagal, dan Bagaimana Saya Boleh Membetulkannya?

Mary-Kate Olsen
Mary-Kate Olsenasal
2025-01-05 05:50:39738semak imbas

Why Is My SQL Server Foreign Key Constraint Failing, and How Can I Fix It?

Menyelesaikan Masalah Penciptaan Kunci Asing dalam Pelayan SQL

Apabila mentakrifkan kunci asing dalam Pelayan SQL, penjagaan mesti diambil untuk memastikan sintaks adalah betul. Kunci asing mewujudkan integriti rujukan antara jadual, memastikan ketekalan dan kesahihan data.

Dalam kod yang disediakan, ralat ditemui semasa membuat kekangan kunci asing pada jadual bank_soalan yang merujuk lajur id_peperiksaan dalam jadual peperiksaan. Mesej ralat menunjukkan ketidakpadanan dalam bilangan lajur rujukan dan lajur rujukan.

Isu ini berpunca daripada ketiadaan lajur dalam jadual bank_soalan yang sepadan dengan lajur id_peperiksaan dalam jadual peperiksaan. Untuk mewujudkan hubungan kunci asing yang sah, mesti ada padanan antara lajur rujukan dan rujukan.

Untuk menyelesaikan ralat ini, tambahkan lajur bernama question_exam_id pada jadual bank_soalan. Lajur ini sepatutnya mempunyai jenis data yang sama seperti lajur exam_id dalam jadual peperiksaan.

Kod yang diperbetulkan kini berjaya mencipta kekangan kunci asing:

...
create table question_bank
(
    question_id uniqueidentifier primary key,
    question_exam_id uniqueidentifier not null, -- Added this line
    question_text varchar(1024) not null,
    question_point_value decimal,
    constraint question_exam_id foreign key references exams(exam_id)
);
...

Selain itu, jika kekangan perlu dicipta secara bebas, pernyataan ALTER TABLE boleh digunakan:

ALTER TABLE question_bank
ADD CONSTRAINT question_exam_id_FK FOREIGN KEY (question_exam_id) REFERENCES exams(exam_id);

Dengan memastikan penjajaran yang betul merujuk dan merujuk lajur, kunci asing boleh diwujudkan dengan berkesan dalam SQL Server, melindungi integriti data dan mencegah ketidakkonsistenan.

Atas ialah kandungan terperinci Mengapa Kekangan Utama Asing Pelayan SQL Saya Gagal, dan Bagaimana Saya Boleh Membetulkannya?. 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