【问题标题】:sql developer -data modeller generated DDL includes changes already committed into databasesql developer -data modeller 生成的 DDL 包括已提交到数据库的更改
【发布时间】: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


【解决方案1】:

此错误意味着您的 Data Modeller 或 SQL Dev 已过时,导致他们无法合作。限制在那里,但你的 DM 没有认识到它们。更新您的系统,如果这不起作用,请手动重新安装。我以前见过这种情况,但并不漂亮。希望这能解决您的问题!

【讨论】:

  • 好的,谢谢您的建议,尽管我很确定我已经拥有最新版本,但我会尝试卸载并重新安装这两个软件的最新版本
  • 很高兴这有帮助!
猜你喜欢
  • 1970-01-01
  • 2019-10-29
  • 1970-01-01
  • 1970-01-01
  • 2017-05-24
  • 2022-01-27
  • 2013-12-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多