主索引鍵是具有值的一個欄位或一組欄位,這些值在整個資料表中都是唯一值。 索引鍵的值可以用來參照整個記錄,因為每筆記錄都有不同的索引鍵值。 每個資料表只能有一個主索引鍵。 當您建立資料表時,Access 可以自動建立主索引鍵欄位,或者您可以指定要做為主索引鍵的欄位。 本文將說明如何使用主索引鍵及其使用原因。
若要設定資料表的主索引鍵,請在 [設計檢視] 中開啟資料表。 選取要使用的欄位,然後在功能區按一下 [主索引鍵]。
附註: 本文專用於 Access 桌面資料庫。 Access 會自動管理 Access Web 應用程式和 Web 資料庫中新資料表的主索引鍵。 雖然您可以覆寫這些自動主索引鍵,但我們不建議您這麼做。
本文內容
Access 中主索引鍵的概觀
Access 使用主索引鍵欄位快速地關聯多個資料表中的資料,並以有意義的方式將其合併。 您可以在其他資料表中包含主索引鍵欄位,以便參照回主索引鍵的來源資料表。 在其他資料表中,這些欄位稱為外部索引鍵。 例如,[客戶] 資料表中的 [客戶識別碼] 欄位可能也會出現在 [訂單] 資料表。 在 [客戶] 資料表中,該欄位為主索引鍵。 在 [訂單] 資料表中,則稱為外部索引鍵。 簡單來說,外部索引鍵就是另一個資料表的主索引鍵。 如需詳細資訊,請參閱資料庫設計的基本概念。
1. 主索引鍵
2. 外部索引鍵
如果您正在將現有的資料移至資料庫,您可能已經有一個可以用作主索引鍵的欄位。 識別碼或序號或代碼等唯一識別碼,通常可做為資料表中的主索引鍵。 例如,您可能有一個 [客戶] 資料表,資料表中的每一個客戶都有一個唯一的客戶識別碼編號。 該客戶識別碼欄位即為主索引鍵。
Access 會自動建立主索引鍵的索引,以便加快查詢和其他操作的速度。 Access 還會確保每筆記錄的主索引鍵欄位中都具有值,且是唯一的值。
在 [資料工作表檢視] 中建立新的資料表時,Access 會自動建立主索引鍵,並為其指派 "識別碼" 欄位名稱及 [自動編號] 資料類型。
什麼是理想的主索引鍵?
要做為主索引鍵,最好具備下列特徵:
-
可以唯一識別每一個資料列
-
它絕不會是空白或 Null,一定含有值
-
所包含的值極少變更 (最好是永不變更)
如果您無法找出良好的索引鍵,請建立 [自動編號] 類型的欄位當做索引鍵。 [自動編號] 類型的欄位會在每筆記錄第一次儲存時自動其身產生一個值。 因此,[自動編號] 類型的欄位符合理想主索引鍵的三個特性。 如需新增 [自動編號] 欄位的詳細資訊,請參閱新增 [自動編號] 欄位做為主索引鍵一文。
[自動編號] 類型的欄位很適合當做主索引鍵。
不理想主索引鍵的範例
缺乏一或多項上述主索引鍵特性的任何欄位,都不是主索引鍵的理想選擇。 以下是一些欄位的範例,說明哪些欄位對「連絡人」資料表來說是不理想的主索引鍵,並說明不適當的理由。
不理想的主索引鍵 |
原因 |
---|---|
個人姓名 |
可能並非絕對的唯一資訊,且可能變更 |
電話號碼 |
可能會變更。 |
電子郵件地址 |
可能會變更。 |
郵遞區號 |
可能有很多人都有同樣的郵遞區號 |
結合事實和數字 |
事實部分可能會變更,造成維護上的負擔。 如果事實部分在其他欄位重複,可能會導致混淆。 例如,如果城市也儲存為一個欄位,合併城市和遞增數字 (例如 NEWYORK0579) 就不是好選擇。 |
社會安全號碼 |
|
複合式索引鍵:使用多個欄位組合為主索引鍵
在有些情況下,您希望將資料表中兩個或多個欄位做為主索引鍵。 例如,儲存訂單明細項目的「訂單詳細資料」資料表可能在它的主索引鍵中使用兩個欄位:「訂單識別碼」與「產品識別碼」。 具有一個以上欄位的索引鍵就稱為「複合索引鍵」。
使用 Access 已經有的欄位設定主索引鍵
為了能讓主索引鍵運作正常,此欄位必須能唯一識別每個資料列,同時不含空白或 Null 值,也極少變更 (最好是永不變更)。 若要設定主索引鍵:
-
開啟要修改的資料庫。
-
在 [瀏覽窗格] 中,以滑鼠右鍵按一下要設定主索引鍵的資料表,然後按一下捷徑功能表上的 [設計檢視]。
提示: 如果沒看到 [瀏覽窗格],請按下 F11 以顯示該窗格。
-
選取要用來當做主索引鍵的一或多個欄位。
若要選取一個欄位,請按一下所要欄位的資料列選取器。
若要選取多個欄位來建立複合索引鍵,請按住 CTRL,然後按一下各欄位的資料列選取器。
-
在 [ 數據表設計] 索引 標籤的 [ 工具] 群組中,按兩下 [ 主鍵]。
您指定做為主索引鍵的欄位左側會新增索引鍵指示器。
移除 Access 中的主索引鍵
移除主索引鍵後,原先做為主索引鍵的欄位將不再是識別記錄的主要方式。
移除主索引鍵不會從資料表刪除該欄位,但會移除主索引鍵的索引。
-
在移除主索引鍵之前,必須先確定該索引鍵不涉入任何資料表關聯。 若嘗試移除的主索引鍵是一或多項關聯的一部分,Access 會提出警告,要求您先刪除關聯。
若要刪除資料表關聯,請完成下列步驟:-
如果涉及資料表關聯的資料表為開啟狀態,請將其關閉。 若資料表為開啟狀態,您將無法刪除資料表之間的資料表關聯。
-
在 [資料庫工具] 索引標籤上的 [資料庫關聯圖] 群組中,按一下 [資料庫關聯圖]。
-
選取 [新增表格]。
-
針對要刪除的資料表關聯,按一下資料表關聯線 (選取時會以粗體顯示),然後按下 DELETE 鍵。
-
在 [ 資料庫關聯設計] 索引 標籤上,按兩下 [ 資料庫關聯圖 ] 群組中的 [ 關閉]。
-
-
刪除關聯後,在 [瀏覽窗格] 中,以滑鼠右鍵按一下要移除主索引鍵的資料表,然後按一下 [設計檢視]。
提示: 如果沒看到 [瀏覽窗格],請按下 F11 以顯示該窗格。
-
按一下目前主索引鍵的資料列選取器。
如果主索引鍵只包含單一欄位,請按一下該欄位的資料列選取器。
如果主索引鍵包含多個欄位,請按一下主索引鍵中任意欄位的資料列選取器。
-
在 [ 數據表設計] 索引 標籤的 [ 工具] 群組中,按兩下 [ 主鍵]。
索引鍵指示器即會從您先前指定為主索引鍵的一或多個欄位中移除。
附註: 儲存新資料表時,如果沒有設定主索引鍵,Access 會提示您建立主索引鍵。 若選擇 [是],Access 就會建立 [自動編號] 資料類型的 [識別碼] 欄位,為每筆記錄提供唯一值。 若資料表已經包含 [自動編號] 類型的欄位,Access 便會使用該欄位做為主索引鍵。
變更 Access 中的主索引鍵
若要變更資料表的主索引鍵,您可以執行下列步驟:
其他資訊
如需資料庫設計及選擇適當主索引鍵的詳細資訊,請參閱下列文章: