đó là bởi vì chế độ xem cụ thể hóa của bạn dựa trên hai bảng, nếu bạn tạo chế độ xem của mình dựa trên một bảng duy nhất có khóa chính, thì khóa chính sẽ được tạo trên chế độ xem cụ thể hóa của bạn. Bạn vẫn có thể tạo chỉ mục sau đó nếu cần:
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.
CHỈNH SỬA
tạo khóa chính thay vì chỉ mục duy nhất:
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.