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中文网其他相关文章!