ホームページ > データベース > mysql チュートリアル > テーブル作成時の SQL Server での外部キー制約エラーを解決するにはどうすればよいですか?

テーブル作成時の SQL Server での外部キー制約エラーを解決するにはどうすればよいですか?

Linda Hamilton
リリース: 2024-12-30 13:07:10
オリジナル
793 人が閲覧しました

How to Resolve Foreign Key Constraint Errors in SQL Server When Creating Tables?

SQL Server での外部キーの作成

データベース管理では、データの整合性を維持するためにテーブル間の相互接続を作成します。これを実現する 1 つの方法は、外部キーを使用することです。 SQL Server は、PostgreSQL などの他のデータベース システムとは区別して、外部キー制約を宣言するための特定の構文を採用しています。

構文の問題と解決策

提供された SQL スクリプトの目的は、 3 つのテーブル: Exam、question_bank、および anwser_bank。question_bank テーブルは外部キー制約を使用して Exam テーブルを参照します。ただし、実行時にエラーが発生します。

Msg 8139, Level 16, State 0, Line 9
Number of referencing columns in
foreign key differs from number of
referenced columns, table
'question_bank'.
ログイン後にコピー

エラーの説明

このエラーは、外部キー宣言で参照される列の数と外部キー宣言で参照される列の数が一致しないことを示します。参照されるテーブルの列の数。提供されたスクリプトでは、テーブル question_bank の外部キー制約が Exam_id 列を参照しますが、参照されるテーブルには Exam_id という名前の列がありません。

外部キー制約の修正

この問題を解決するには、外部キー宣言を更新して、テーブル内のexam_idである正しい列を参照する必要があります。

create table question_bank
(
    question_id uniqueidentifier primary key,
    question_exam_id uniqueidentifier not null, -- References "exam_id" in table "exams"
    question_text varchar(1024) not null,
    question_point_value decimal,
    constraint FK_question_bank_exam_id foreign key references exams(exam_id)
);
ログイン後にコピー

代替構文

必要に応じて、ALTER TABLE ステートメントを使用して外部キー制約を作成できます。これにより、後で制約を追加できる柔軟性が得られます。テーブルが作成されました:

alter table question_bank
add constraint FK_question_bank_exam_id FOREIGN KEY ( question_exam_id ) references exams(exam_id)
ログイン後にコピー

このアプローチにより、制約の名前付けとタイミングをより詳細に制御できます。作成。

以上がテーブル作成時の SQL Server での外部キー制約エラーを解決するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート