ホームページ >データベース >mysql チュートリアル >非主キー列への外部キーを作成するにはどうすればよいですか?

非主キー列への外部キーを作成するにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2025-01-15 09:46:43520ブラウズ

How to Create a Foreign Key to a Non-Primary Key Column?

非主キーを指す外部キーを作成します

質問:

別のテーブルの非主キー列を指す外部キーを作成して参照整合性を維持するにはどうすればよいですか?

答え:

外部キーを作成するときに主キーを参照することが一般に推奨されますが、特定の条件下では、非主キーを指す外部キーを作成することが可能です。

解決策:

非主キーを指す外部キーを作成するには、参照されるテーブルのターゲット列に一意制約を適用する必要があります。これは、データの整合性を確保するには、列の値が一意である必要があることを意味します。

例:

次のテーブル構造を考えてみましょう:

<code class="language-sql">CREATE TABLE table1 (
   ID INT NOT NULL IDENTITY(1,1) PRIMARY KEY,
   AnotherID INT NOT NULL,
   SomeData VARCHAR(100) NOT NULL
);

CREATE TABLE table2 (
   ID INT NOT NULL IDENTITY(1,1) PRIMARY KEY,
   AnotherID INT NOT NULL,
   MoreData VARCHAR(30) NOT NULL,

   CONSTRAINT fk_table2_table1 FOREIGN KEY (AnotherID) REFERENCES table1 (AnotherID)
);</code>

この例では、table1 の AnotherID 列は主キーではありません。ただし、AnotherID 列を使用して table2 と table1 の間に外部キー関係を作成できる一意の制約があります。

代替:

主キー以外の列に一意制約を作成できない場合は、代わりに参照テーブルの主キーを外部キーとして使用することを検討してください。この方法はデータベースの完全性を強化するため、一般的に推奨されます。

以上が非主キー列への外部キーを作成するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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