sql >> Databasteknik >  >> RDS >> Oracle

Oracle materialiserade vyer med primärnyckel

det beror på att din materialiserade vy är baserad på två tabeller, om du skapar din vy baserad på en enda tabell med en primärnyckel, så skapas primärnyckeln på din materialiserade vy. Du kan fortfarande skapa indexet efteråt om du behöver en:

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.

REDIGERA

skapa en primärnyckel istället för det unika indexet:

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. inställning av utf8 med mysql till php

  2. Mysql inom avståndsfråga

  3. Mer om CXPACKET Waits:Skewed Parallelism

  4. På grund av nullvärde återfylls inte data