sql >> Database >  >> RDS >> Oracle

Oracle gematerialiseerde weergaven met primaire sleutel

het is omdat uw gematerialiseerde weergave is gebaseerd op twee tabellen. Als u uw weergave maakt op basis van een enkele tabel met een primaire sleutel, wordt de primaire sleutel gemaakt op uw gematerialiseerde weergave. U kunt de index achteraf nog steeds maken als u er een nodig hebt:

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.

BEWERKEN

maak een primaire sleutel in plaats van de unieke index:

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.



  1. Kan het polymorfe type niet bepalen omdat het type onbekend is

  2. naam en waarde ophalen van xmltype-attribuut in oracle

  3. Hoe stel je een standaard pager in voor de MySQL-client?

  4. Hoe Cross Apply en Split String in MySQL weer te geven?