使用 IBM Data Studio 管理數據庫最佳實踐7

2. 在上圖中點擊 OK 按鈕,會顯示外鍵的屬性視圖,在外鍵屬性視圖中選擇 Details 頁面,此時會看到在子表的外鍵列的列表中和父表的主鍵列的列表中,Data studio 已經自動地分別的添加了名為 ID 的列,此時大家可能會想:子表中並不包含 ID 列啊?下文中會給出解釋。但是我們想讓子表的 managerid 作為外鍵列,點擊子表的 Key Columns 右邊的按鈕,在彈出的列表裡取消 ID 列的選擇,僅選擇 managerid,請參考下圖 31

圖 31. 在外鍵屬性視圖中選擇外鍵列

3. 在上圖中點擊 OK 按鈕,再點擊外鍵列表編輯器視圖右上方綠色的 Review and Deploy Changes 按鈕,在彈出的預覽部署對話框中出現錯誤提示說 :”ID 列設為非空,請為 ID 列指定值,請參考下圖 32

圖 32. 在運行創建外鍵的操作時出現驗證錯誤

但是 DB2 本身是允許外鍵列為空,而且也允許外鍵列和主鍵列不同名。產生這個結果的原因是 Data Studio 為了模型驗證,當子表裡不包含和父表裡的主鍵列同樣的列時,Data Studio 缺省會自動為子表加上和父表的主鍵同樣的列作為外鍵,並會驗證外鍵是否非空。當然是否在創建外鍵時把父表的主鍵列遷移到子表是可以在參數頁里設置的,點擊 Data Studio 主菜單中的 Window->Preferences 打開參數頁,選擇 Data Management->Key Migration->On Add,取消 Migrate Key automatically 選擇,如下圖 33

圖 33. 在參數頁取消創建外鍵時自動遷移外鍵列的選項

4. 點擊參數頁上的 OK 按鈕保存設置,取消以上步驟 1-3 的操作,重新執行步驟 1,然後在外鍵的屬性視圖中,在 General 頁面選擇選項 Non-Identifying,如下圖 34

圖 34. 在外鍵屬性視圖中選擇不驗證外鍵

接下來再選擇 Details 頁面,此時用戶就會發現這次和圖 31 中顯示的結果不同,子表的外鍵列表和父表的主鍵列表都是空的,這次點擊子表的添加外鍵的按鈕時,在彈出的列選擇框里就不會在看到 ID 列了,選擇 managerid 作為外鍵,請參考下圖 35

圖 35. 在參數頁取消外鍵列自動遷移選項後的外鍵屬性視圖

以下文章點擊率最高

Loading…

     

如果這文章對你有幫助,請掃左上角微信支付-支付寶,給於打賞,以助博客運營