【发布时间】:2020-08-17 14:15:23
【问题描述】:
我已经创建了一个集群
create cluster abc_clus
(abc_key int)
;
然后基于该集群创建一个索引
create index abc_clus_idx
on cluster abc_clus;
我尝试在这 4 个表上添加此集群以进行 complex 连接
create table number1
(
dateofbirth date,
Time timestamp(0),
IDnumber int not null,
class varchar(7) not null,
primary key (dateofbirth, Time, class))
cluster abc_clus(class);
和
create table number2(
tutornumber int not null,
forename varchar2(20) not null,
constraint number2 primary key (tutornumber))
cluster abc_clus(tutornumber);
和
create table number3
(
constraint number3 primary key (Roomnumber),
Roomnumber int not null,
xyz varchar(20))
cluster abc_clus(Roomnumber3);
和
create table number4
(
constraint class_pk primary key (classnumber),
classnumber int not null)
cluster abc_clus(classnumber);
但是,当我尝试这个时,我得到了这个错误:
ORA-01753:列定义与聚集列定义不兼容
我想知道如何在复合键上添加集群的正确方法是:名字、姓氏、地址。
我正在使用 SQL plus。
谢谢
【问题讨论】:
-
您需要定义集群表中的所有列以及数据类型。
-
我很困惑?我需要对我创建的表进行更改吗?
-
现在我很困惑,我以为你想要集群表中的复合键。这完全取决于你的要求和所涉及的表。
-
是否还有其他共享公共列的表?你为什么要首先创建一个集群?
-
是的,我会更新问题以更清楚
标签: sql oracle indexing sqlplus composite-key