sql >> Base de Datos >  >> RDS >> Oracle

¿Cómo agrego un clúster en una clave compuesta?

La columna de la tabla debe tener el mismo tipo de datos que la columna del clúster. En tu ejemplo, esto funciona bien:

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

Incluso una clave compuesta funciona, si el tipo de datos coincide con:

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

Sin embargo, si el tipo de datos es diferente, recibe su mensaje de error:

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

Y el tipo de datos tiene que ser exactamente el mismo, incluso int y number no son compatibles:

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

EDITAR:

Incluso puede tener clústeres compuestos:

crear clúster idc_clus (i int, d date);

crear el índice idc_clus_idx en el clúster idc_clus;

crear tabla test5 (i int,d date,primary key (i,d)) cluster idc_clus(i,d);