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. 我将 db 结构合并到我的数据模型(Oracle SQL Data Modeler)中,并看到 MV,主键和唯一索引是用主键创建的。
  2. 我删除 MV 或连接到没有这些 mv 的模式,并将我的完整模型与 db 模式进行比较,只得到一个带有 MV 和唯一索引的脚本
  3. 试图将主键的 sql 放入“脚本结束”或“创建后”脚本属性,但它没有出现在我的合并脚本中。
4

0 回答 0