【发布时间】:2020-02-14 11:21:13
【问题描述】:
对 oracle 12c 数据库使用嵌入在 sql developer 19.4 中的数据建模器。
我在数据建模器 erd 图中添加了几个外键,然后单击“将数据建模器与模型同步”;然后我注意到,在生成的 DDL 中,除了我的合法更改之外,DDL 还包含与数据库中已经存在的更改相关的其他 SQL;无论如何,我通过删除不需要的更改并应用并提交我的更改来修改 DDL。然后我再次运行相同的比较,“比较模型”窗口正确显示没有变化,但是...... DDL 已经应用了相同的 shanges 以及数据库中已经存在的那些。
我还通过将模型与 erd 进行比较来恢复比较并点击“合并”,认为这是某种缓存内存等问题。但同样的问题在这里:“比较模型”视图确实正确显示没有 chaages但是 DDL 包含更改??
在 DDL 下方,包含数据库中已存在的更改脚本。
ALTER TABLE gasgendev.audit_errors
ADD CONSTRAINT audit_errors_look_audit_types_fk FOREIGN KEY ( audit_type )
REFERENCES gasgendev.look_audit_types ( audit_type_id )
ON DELETE CASCADE
NOT DEFERRABLE ENABLE VALIDATE;
ALTER TABLE gasgendev.audit_logs
ADD CONSTRAINT audit_logs_look_audit_types_fk FOREIGN KEY ( audit_type )
REFERENCES gasgendev.look_audit_types ( audit_type_id )
ON DELETE CASCADE
NOT DEFERRABLE ENABLE VALIDATE;
ALTER TABLE gasgendev.halo_inputs
ADD CONSTRAINT halo_inputs_look_assets_fk FOREIGN KEY ( look_assets_l_asset_id )
REFERENCES gasgendev.look_assets ( l_asset_id )
ON DELETE CASCADE
NOT DEFERRABLE ENABLE VALIDATE;
ALTER TABLE gasgendev.halo_inputs
ADD CONSTRAINT halo_inputs_look_datasets_fk FOREIGN KEY ( dataset_id )
REFERENCES gasgendev.look_datasets ( l_dataset_id )
ON DELETE CASCADE
NOT DEFERRABLE ENABLE VALIDATE;
ALTER TABLE gasgendev.manual_inputs
ADD CONSTRAINT manual_inputs_look_manual_inputs_fk FOREIGN KEY ( look_manual_inputs_look_manual_input_id )
REFERENCES gasgendev.look_manual_inputs ( look_manual_input_id )
ON DELETE CASCADE
NOT DEFERRABLE ENABLE VALIDATE;
ALTER TABLE gasgendev.manual_inputs
ADD CONSTRAINT manual_inputs_look_datasets_fk FOREIGN KEY ( dataset_id )
REFERENCES gasgendev.look_datasets ( l_dataset_id )
ON DELETE CASCADE
NOT DEFERRABLE ENABLE VALIDATE;
当然,如果我在 SQL 开发人员中运行该脚本,我会收到错误消息,指出这些约束已经存在。
谁能告诉我我在这里做错了什么?
【问题讨论】:
-
数据建模器的版本?
-
数据建模器 19.4.0
标签: oracle10g oracle-sqldeveloper