Ern*_*uez 2 oracle materialized-views primary-key
我在下面创建了Oracle物化视图:
CREATE MATERIALIZED VIEW MyMV
REFRESH COMPLETE ON DEMAND
AS
SELECT t1.*
FROM table1 t1, table2 t2 where t1.id=t2.id;
Run Code Online (Sandbox Code Playgroud)
table1有一个主键,并且成功创建了MV,但未在物化视图表中创建主键。
还有其他用主键创建MV的方法吗?
这是因为您的物化视图基于两个表,如果您基于具有主键的单个表创建视图,则在您的物化视图上创建了主键。如果需要,您仍然可以在以后创建索引:
SQL> create table t1(id number);
Table created.
SQL> create table t2(id number);
Table created.
SQL> alter table t1 add primary key (id);
Table altered.
SQL> alter table t2 add primary key (id);
Table altered.
SQL> CREATE MATERIALIZED VIEW MyMV
REFRESH COMPLETE ON DEMAND
AS
SELECT t1.*
FROM t1, t2 where t1.id=t2.id; 2 3 4 5
Materialized view created.
SQL> create unique index myindex on MyMV(id);
Index created.
Run Code Online (Sandbox Code Playgroud)
编辑
创建一个主键而不是唯一索引:
SQL> alter materialized view MyMV add constraint PK_ID primary key (id);
Materialized view altered.
SQL> alter table t3 add constraint FK_TABLE3_MyMV foreign key (id) references MyMV (id);
Table altered.
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8018 次 |
| 最近记录: |