ホームページ >データベース >mysql チュートリアル >SQL Server の外部キー制約が失敗するのはなぜですか? どうすれば修正できますか?

SQL Server の外部キー制約が失敗するのはなぜですか? どうすれば修正できますか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2025-01-05 05:50:39697ブラウズ

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

SQL Server での外部キー作成のトラブルシューティング

SQL Server で外部キーを定義する場合は、構文が正しいことを確認するように注意する必要があります。外部キーはテーブル間の参照整合性を確立し、データの一貫性と有効性を保証します。

提供されたコードでは、example テーブルの Exam_id 列を参照する question_bank テーブルに外部キー制約を作成中にエラーが発生しました。エラー メッセージは、参照する列と参照される列の数が一致していないことを示しています。

この問題は、examples テーブルの Exam_id 列に対応する列が question_bank テーブルに存在しないことが原因で発生します。有効な外部キー関係を確立するには、参照元の列と参照先の列が一致する必要があります。

このエラーを解決するには、question_exam_id という名前の列を question_bank テーブルに追加します。この列は、examples テーブルの 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 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。