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