Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Oracle Materialized Views com chave primária


é porque sua visão materializada é baseada em duas tabelas, se você criar sua visão com base em uma única tabela com uma chave primária, então a chave primária é criada em sua visão materializada. Você ainda pode criar o índice depois, se precisar:
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.

EDITAR

crie uma chave primária em vez do índice exclusivo:
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.