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…