首页 >数据库 >mysql教程 >为什么我的 SQL Server 外键约束失败,如何修复?

为什么我的 SQL Server 外键约束失败,如何修复?

Mary-Kate Olsen
Mary-Kate Olsen原创
2025-01-05 05:50:39690浏览

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

SQL Server 中的外键创建疑难解答

在 SQL Server 中定义外键时,必须注意确保语法正确。外键建立表之间的引用完整性,确保数据的一致性和有效性。

在提供的代码中,在引用 exam 表中的 exam_id 列的 Question_bank 表上创建外键约束时遇到错误。该错误消息表明引用列和被引用列的数量不匹配。

该问题源于 Question_bank 表中缺少与 exam 表中的 exam_id 列相对应的列。要建立有效的外键关系,引用列和被引用列之间必须匹配。

要解决此错误,请将名为 Question_exam_id 的列添加到 Question_bank 表中。该列应与 exams 表中的 exam_id 列具有相同的数据类型。

更正后的代码现在已成功创建外键约束:

...
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)
);
...

此外,如果约束需要独立创建时,可以使用 ALTER TABLE 语句:

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

通过确保引用和被引用的正确对齐列、外键可以在 SQL Server 中有效建立,保护数据完整性并防止不一致。

以上是为什么我的 SQL Server 外键约束失败,如何修复?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn