使用 Oracle SQL Data Modeler 实现物化视图的主键

问题描述 投票:0回答:0

我们正在使用 Oracle SQL Data Modeler 创建我们的新数据库。实际上,我们需要在新的数据库模式中创建物化视图,以提供来自另一个模式的一些主数据。使用数据建模器创建 MV 没有问题,但我们想在 mv 上创建一个主键以使用外键。有了这个约束,我们希望确保数据的完整性。

如果我们手动创建整个结构,一切都很好,如果我们将其合并到建模器的设计中,我们也会看到主键。但是如果我们将模型与另一个模式(Testenviroment)进行比较,那么只会创建一个唯一索引并且缺少主键。

我们尝试使用脚本属性创建主键,但该语句未出现在脚本中。

有什么想法可以解决这些问题吗?

我的步骤:

  1. 我创建了 MV 和主键
CREATE MATERIALIZED VIEW MV_TEST ( TEST_ID , NAME , DESCRIPTION , COUNTRY_ID , COUNTRY_NAME  ) 
NEVER REFRESH 
AS SELECT
    B.TEST_ID,
    B.NAME,
    B.DESCRIPTION,
    C.COUNTRY_ID,
    C.COUNTRY_NAME
FROM
    TEST@TESTDB B,
    COUNTRY@TESTDB C
WHERE B.COUNTRY_ID = C.COUNTRY_ID;


ALTER TABLE MV_TEST
ADD CONSTRAINT MV_TEST_PK PRIMARY KEY ( TEST_ID );
  1. 我将数据库结构合并到我的数据模型中(Oracle SQL Data Modeler) 并查看 MV、主键和使用主键创建的唯一索引。
  2. 我删除 MV 或连接到没有这些 mv 的模式,并将我的完整模型与 db 模式进行比较,只得到一个带有 MV 和唯一索引的脚本
  3. 试图将主键的 sql 放入“脚本结束”或“创建后”脚本属性,但它没有出现在我的合并脚本中。
oracle constraints materialized-views oracle-sql-data-modeler
© www.soinside.com 2019 - 2024. All rights reserved.