2

该图有 40 多个表,其中大多数都定义了主键。

出于某种原因,有一个表,它定义了一个主键,但是当我将模型导出到 DDL 脚本时,它被忽略了。

这是“有问题的”键(即使已检查它在生成的 DDL 脚本中找不到):

在此处输入图像描述

有没有人有同样的问题?关于如何解决它的任何想法?

[编辑]这是定义键的地方:

在此处输入图像描述

这是 DDL 预览(是的,主键显示在那里):

在此处输入图像描述

如果我尝试仅为该表生成 DDL(仍未生成主键),就会发生这种情况:

在此处输入图像描述

4

3 回答 3

1

“两个表之间的这种关系使得无法向其中任何一个添加记录:插入操作将返回一个错误,抱怨指向另一个表的外键限制。”

实际上,如果您有延迟约束,这并非不可能。例如,可以在提交时而不是在插入时立即实施约束。

于 2016-05-23T14:54:16.017 回答
1

我终于能够识别并重现该问题。

这是一个简单的约束冲突。

MIEMBROS在其主键列上具有来自另一个表的强制性 1 到 n 关系(外键),反之亦然(MIEMBROS另一个表的主键上有一个外键)。

两个表之间的这种关系使得无法向其中任何一个添加记录:插入操作将返回一个错误,抱怨指向另一个表的外键限制。

无论如何,我意识到其中一个关系是 0 到 n,所以我简单地取消选中外键定义上的“强制”复选框,一切都很好。

因此,简而言之:如果您在不可为空的唯一列上定义相互关系(两个外键,一个在每个表上针对另一个表),则数据建模器会默默地“失败” ,而不是生成其中一个的主键表。

如果你问我,这种奇怪的行为!

于 2015-09-03T21:25:28.907 回答
0

在 File 下的 Data Modeler 菜单中,我使用了 Export -> DDL File。密钥出现在 DDL 中,然后当我返回图表并进行 DDL 预览时,它显示了所有缺失的内容。

于 2015-09-03T15:48:03.617 回答