Access鍵值衝突的三種原因及應對辦法?

本文重點介紹在執行Access追加查詢時,遇到鍵值衝突錯誤的三種可能原因及應對辦法,對於更新查詢也可參照分析。對於Access初學者,經常會碰到系統的出錯提示,但又不知所云。本人總結10多年的資料庫應用經驗,將常見問題“鍵值衝突”的三種常見原因分析及應對方法分享給各位。

雖然本文的製作環境是Access2016,但操作與2010版甚至2003版是一致的。如圖,錯誤提示,是有2條記錄由於鍵值衝突無法追加。這個追加查詢是追加4條記錄的,如果按“是”就只追加2條,如果按“否”就不執行追加查詢(追加0條)。

Access鍵值衝突的三種原因及應對辦法

Access鍵值衝突的三種原因及應對辦法

工具/原料

Access(本文製作環境Access2016)

方法/步驟

原因一,追加表中本身就存在重複鍵值。如圖,訂單表是被追加資料進去的表,主鍵是訂單號。主鍵是不可為空不可重複的。這裡的追加表中訂單號欄位有2條記錄重複了(訂單號記錄為:D0021)。

Access鍵值衝突的三種原因及應對辦法

應對一,刪除追加表的重複記錄。經過甄別,第2條和第4條記錄是完全相同的,刪除第4條記錄即可。

Access鍵值衝突的三種原因及應對辦法

方法/步驟2

原因二,追加表與被追加表有重複鍵值。如圖,訂單表已經存有D0012的訂單號記錄(第3條記錄),而追加表也有這個訂單號(也是第3條記錄)。

Access鍵值衝突的三種原因及應對辦法

應對二,刪除重複記錄。經過甄別,追加表和被追加表的這條記錄是完全相同的。可刪除追加表記錄,也可以刪除被追加表的這條記錄(如圖是後者)。

Access鍵值衝突的三種原因及應對辦法

方法/步驟3

原因三,外來鍵缺少記錄。如圖,訂單表和供應商表設定了關係,供應商表的主鍵供應商與訂單表供應商欄位作了關聯,實施參照完整性,所以訂單表的供應商欄位是外來鍵。追加表中有一條含有“戊供應商”的記錄,而供應商表沒有對應的記錄,這也是會造成鍵值衝突的。

Access鍵值衝突的三種原因及應對辦法

應對三,補值。如圖,在供應商表補充“戊供應商”的記錄。

Access鍵值衝突的三種原因及應對辦法

注意事項

本範例是根據追加查詢錯誤製作的,對於更新查詢出現的鍵值衝突,也可參考。

相關問題答案