该图有 40 多个表,其中大多数都定义了主键。
出于某种原因,有一个表,它定义了一个主键,但是当我将模型导出到 DDL 脚本时,它被忽略了。
这是“有问题的”键(即使已检查它在生成的 DDL 脚本中找不到):
有没有人有同样的问题?关于如何解决它的任何想法?
[编辑]这是定义键的地方:
这是 DDL 预览(是的,主键显示在那里):
如果我尝试仅为该表生成 DDL(仍未生成主键),就会发生这种情况:
该图有 40 多个表,其中大多数都定义了主键。
出于某种原因,有一个表,它定义了一个主键,但是当我将模型导出到 DDL 脚本时,它被忽略了。
这是“有问题的”键(即使已检查它在生成的 DDL 脚本中找不到):
有没有人有同样的问题?关于如何解决它的任何想法?
[编辑]这是定义键的地方:
这是 DDL 预览(是的,主键显示在那里):
如果我尝试仅为该表生成 DDL(仍未生成主键),就会发生这种情况:
“两个表之间的这种关系使得无法向其中任何一个添加记录:插入操作将返回一个错误,抱怨指向另一个表的外键限制。”
实际上,如果您有延迟约束,这并非不可能。例如,可以在提交时而不是在插入时立即实施约束。
我终于能够识别并重现该问题。
这是一个简单的约束冲突。
表MIEMBROS
在其主键列上具有来自另一个表的强制性 1 到 n 关系(外键),反之亦然(MIEMBROS
另一个表的主键上有一个外键)。
两个表之间的这种关系使得无法向其中任何一个添加记录:插入操作将返回一个错误,抱怨指向另一个表的外键限制。
无论如何,我意识到其中一个关系是 0 到 n,所以我简单地取消选中外键定义上的“强制”复选框,一切都很好。
因此,简而言之:如果您在不可为空的唯一列上定义相互关系(两个外键,一个在每个表上针对另一个表),则数据建模器会默默地“失败” ,而不是生成其中一个的主键表。
如果你问我,这种奇怪的行为!
在 File 下的 Data Modeler 菜单中,我使用了 Export -> DDL File。密钥出现在 DDL 中,然后当我返回图表并进行 DDL 预览时,它显示了所有缺失的内容。