Mewujudkan Kekangan Utama Asing dalam Pelayan SQL
Mengekalkan integriti data adalah penting dalam mana-mana sistem pangkalan data. SQL Server menyediakan keupayaan untuk menguatkuasakan perhubungan antara jadual menggunakan kekangan kunci asing. Walau bagaimanapun, pengisytiharan kunci asing berbeza daripada sistem pengurusan pangkalan data lain seperti PostgreSQL.
Sintaks dan Pertimbangan
Berikut ialah cara mencipta kunci asing dalam SQL Server:
ALTER TABLE <child_table> ADD CONSTRAINT <constraint_name> FOREIGN KEY (<child_column>) REFERENCES <parent_table>(<parent_column>)
Pastikan bilangan lajur rujukan dalam jadual anak sepadan dengan bilangan lajur lajur yang dirujuk dalam jadual induk. Jika tidak, anda akan menghadapi ralat yang serupa dengan:
Msg 8139, Level 16, State 0, Line 9 Number of referencing columns in foreign key differs from number of referenced columns, table 'question_bank'.
Penyelesaian Masalah: Sintaks Salah
Kod SQL yang disediakan untuk mencipta jadual question_bank mempunyai ralat. Lajur question_exam_id dalam jadual bank_soalan hendaklah merujuk kepada lajur exam_id dalam jadual peperiksaan.
create table question_bank ( question_id uniqueidentifier primary key, question_exam_id uniqueidentifier not null, <!-- This should be a foreign key --> question_text varchar(1024) not null, question_point_value decimal, constraint question_exam_id foreign key references exams(exam_id) );
Sintaks Ganti: Menambah Kekangan Kemudian
Anda juga boleh mencipta kunci asing kekangan selepas mencipta jadual anak menggunakan ALTER TABLE pernyataan:
alter table question_bank add constraint question_exam_id_fk foreign key (question_exam_id) references exams(exam_id)
Kaedah ini membolehkan anda mentakrifkan kekangan secara berasingan daripada penciptaan jadual, memberikan lebih fleksibiliti dan kawalan ke atas skema pangkalan data.
Atas ialah kandungan terperinci Bagaimana untuk Mewujudkan Kekangan Utama Asing dalam Pelayan SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!