首頁 >資料庫 >mysql教程 >如何為非主鍵列建立外鍵?

如何為非主鍵列建立外鍵?

Linda Hamilton
Linda Hamilton原創
2025-01-15 09:46:43565瀏覽

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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn