Access鍵值沖突的三種原因及應對辦法?
1.原因一,追加表中本身就存在重復鍵值。如圖,訂單表是被追加數據進去的表,主鍵是訂單號。主鍵是不可為空不可重復的。這里的追加表中訂單號字段有2條記錄重復了(訂單號記錄為:D0021)。
應對一,刪除追加表的重復記錄。經過甄別,第2條和第4條記錄是完全相同的,刪除第4條記錄即可。
2.原因二,追加表與被追加表有重復鍵值。如圖,訂單表已經存有D0012的訂單號記錄(第3條記錄),而追加表也有這個訂單號(也是第3條記錄)。
應對二,刪除重復記錄。經過甄別,追加表和被追加表的這條記錄是完全相同的??蓜h除追加表記錄,也可以刪除被追加表的這條記錄(如圖是后者)。
3.原因三,外鍵缺少記錄。如圖,訂單表和供應商表設置了關系,供應商表的主鍵供應商與訂單表供應商字段作了關聯,實施參照完整性,所以訂單表的供應商字段是外鍵。追加表中有一條含有“戊供應商”的記錄,而供應商表沒有對應的記錄,這也是會造成鍵值沖突的。
應對三,補值。如圖,在供應商表補充“戊供應商”的記錄。