sql >> Databasteknik >  >> RDS >> Oracle

Hur lägger jag till ett kluster på en sammansatt nyckel?

Tabellkolumnen måste vara av samma datatyp som klusterkolumnen. I ditt exempel fungerar detta bra:

create table test1 (
  id int
) cluster abc_clus(id);
Table TEST1 created.

Även en sammansatt nyckel fungerar, om datatypen matchar:

create table test2 (
  a int,
  b int,
  primary key(a, b)
) cluster abc_clus(a);
Table TEST2 created.

Men om datatypen är annorlunda får du ditt felmeddelande:

create table test3 (
  vc varchar2(7)
) cluster abc_clus(vc);
ORA-01753: column definition incompatible with clustered column definition

Och datatypen måste vara exakt densamma, även int och number är inte kompatibla:

create table test4 (
  n NUMBER
) cluster abc_clus(n);
ORA-01753: column definition incompatible with clustered column definition

EDIT:

Du kan till och med ha sammansatta kluster:

skapa kluster idc_clus (i int,d date);

skapa index idc_clus_idx på kluster idc_clus;

skapa tabell test5 (i int,d datum,primärnyckel (i,d)) kluster idc_clus(i,d);




  1. Idempotenta PostgreSQL DDL-skript

  2. Mysql dynamisk trigger skapande i lagrad procedur

  3. MySQL Bulk Insert via PHP

  4. Symfony2:Lista städer efter land