2013-05-09 44 views
3

我已經成功地將我的MySQL數據庫與我的Access數據庫文件關聯起來。除了MySQL數據庫中的關係沒有出現在Access中,一切工作正常。訪問不導入MySQL鏈接表的關係

我已經使用外鍵在MySQL表中建立了大量的關係,但這些關係並未反映在Access中。請幫助我將關係從MySQL數據庫導入到Access中。

軟件我使用的是:MySQL版本5的Microsoft Office 2013,Access文件格式:.accdb

回答

5

雖然確實MySQL的外鍵約束在默認情況下並未顯示在Access的關係選項卡中,但這些約束在MySQL中仍然存在,並且仍然針對鏈接表強制執行。

例如,假設我有兩個MySQL表[customers]和[orders],並且在[orders]上有一個外鍵約束。如果我鏈接到Access中的這些表,並嘗試向我的[訂單]鏈接的表中插入一行,其中[客戶ID]與[客戶]關聯表中的[客戶ID]不匹配,則插入失敗:

insertFailed.png

ODBC - 插入鏈接表'訂單'失敗。 (MySQL)[ODBC 5.2(w)Driver] [mysqld-5.5.29-0ubuntu0.12.04.2]不能添加或更新子行:外鍵約束失敗(`zzzTest`,`orders`,約束`orders_ibfk_1`外鍵(`customerID`)參考`客戶`(`customerID`))(#1452)

可以進入關係選項卡中訪問和創建 「訪問方」 的關係對於MySQL表...

editRelationships.png

...但ñ注意「強制引用完整性」選項呈灰色,因爲這是服務器上數據庫設置的功能,而不是Access中的功能。所以真的,唯一的好處是,「訪問方」的關係將提供有:

  • 的關係(你可以從對MySQL數據庫生成的數據庫圖獲得)的「文檔」,並

  • 「自動」在Access查詢設計器中的鏈接表之間進行連接(如果表具有相同名稱的列,也可以在沒有[Access]關係的情況下發生)。

由您來決定創建這些「訪問端」關係是否值得麻煩。