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