Oracle
 sql >> Base de données >  >> RDS >> Oracle

Comment ajouter un cluster sur une clé composite ?

La colonne de table doit être du même type de données que la colonne de cluster. Dans votre exemple, cela fonctionne bien :

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

Même une clé composite fonctionne, si le type de données correspond :

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

Cependant, si le type de données est différent, vous obtenez votre message d'erreur :

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

Et le type de données doit être exactement le même, même int et number ne sont pas compatibles :

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

MODIFIER :

Vous pouvez même avoir des clusters composites :

créer le cluster idc_clus (i int,d date);

créer l'index idc_clus_idx sur le cluster idc_clus ;

créer la table test5 (i int,d date,primary key (i,d)) cluster idc_clus(i, d);