защото вашият материализиран изглед е базиран на две таблици, ако създадете своя изглед на базата на една таблица с първичен ключ, тогава първичният ключ се създава във вашия материализиран изглед. Все още можете да създадете индекса след това, ако имате нужда от такъв:
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.
РЕДАКТИРАНЕ
създайте първичен ключ вместо уникалния индекс:
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.