Oracle SQL Data Modeler 在 DDL 脚本导出时缺少主键
Oracle SQL Data Modeler missing a PRIMARY KEY on DDL script export
该图有 40 多个 table,其中大部分都定义了主键。
出于某种原因,有一个 table,它定义了一个主键,但是当我将模型导出到 DDL 脚本时,它被忽略了。
这是 "offending" 密钥(即使已检查它在生成的 DDL 脚本中无处可寻):
有人遇到过同样的问题吗?关于如何解决它的任何想法?
[编辑] 这是定义密钥的地方:
这是 DDL 预览(是的,主键显示在那里):
如果我尝试为 table(仍未生成主键)生成 DDL,就会发生这种情况:
在文件下的数据建模器菜单中,我使用了导出 -> DDL 文件。键出现在 DDL 中,然后当我返回图表并进行 DDL 预览时,它显示了所有丢失的东西。
我终于能够识别并重现问题。
这是一个简单的约束冲突。
Table MIEMBROS
在其主键列上与另一个 table 具有强制的 1 对 n 关系(外键),反之亦然(在 MIEMBROS
与另一个 table 的主键)。
两个 table 之间的这种关系使得无法向它们中的任何一个添加记录:插入操作将 return 一个错误,抱怨指向另一个 table 的外键限制 table.
无论如何,我意识到其中一个关系是 0 到 n,所以我只是取消选中外键定义上的 "mandatory" 复选框,一切正常。
因此,简而言之:数据建模器 "fails" 默默地 如果您要定义相互关系(两个外键,每个 table通过不生成 table 之一的主键,在不可为空的唯一列上反对另一个 table)。
这种奇怪的行为,如果你问我的话!
"This kind of relationship between two tables makes it impossible to add a record to any of them: The insert operation will return an error complaining about the foreign key restriction pointing the other table."
实际上,如果你有延迟约束,这不是不可能的。例如,可以在提交时而不是在插入时立即强制执行约束。
该图有 40 多个 table,其中大部分都定义了主键。
出于某种原因,有一个 table,它定义了一个主键,但是当我将模型导出到 DDL 脚本时,它被忽略了。
这是 "offending" 密钥(即使已检查它在生成的 DDL 脚本中无处可寻):
有人遇到过同样的问题吗?关于如何解决它的任何想法?
[编辑] 这是定义密钥的地方:
这是 DDL 预览(是的,主键显示在那里):
如果我尝试为 table(仍未生成主键)生成 DDL,就会发生这种情况:
在文件下的数据建模器菜单中,我使用了导出 -> DDL 文件。键出现在 DDL 中,然后当我返回图表并进行 DDL 预览时,它显示了所有丢失的东西。
我终于能够识别并重现问题。
这是一个简单的约束冲突。
Table MIEMBROS
在其主键列上与另一个 table 具有强制的 1 对 n 关系(外键),反之亦然(在 MIEMBROS
与另一个 table 的主键)。
两个 table 之间的这种关系使得无法向它们中的任何一个添加记录:插入操作将 return 一个错误,抱怨指向另一个 table 的外键限制 table.
无论如何,我意识到其中一个关系是 0 到 n,所以我只是取消选中外键定义上的 "mandatory" 复选框,一切正常。
因此,简而言之:数据建模器 "fails" 默默地 如果您要定义相互关系(两个外键,每个 table通过不生成 table 之一的主键,在不可为空的唯一列上反对另一个 table)。
这种奇怪的行为,如果你问我的话!
"This kind of relationship between two tables makes it impossible to add a record to any of them: The insert operation will return an error complaining about the foreign key restriction pointing the other table."
实际上,如果你有延迟约束,这不是不可能的。例如,可以在提交时而不是在插入时立即强制执行约束。