数据库运维
记录DBA学习成长历程

DM8-主键key与大字段冲突问题

具体报错如下

这是因为dm规则不允许大字段与聚簇索引共同存在,可以调整参数进行默认主键为非聚簇。

 

 

搞清楚三种 聚集索引键

1. CLUSTER PRIMARY KEY(非空,唯一):指定列为聚集索引键,并同时指定为主键,称为聚簇主键;
2. CLUSTER KEY(非空,非唯一):指定列为聚集索引键,但是是非唯一的;可以有重复值;
3. CLUSTER UNIQUE KEY(唯一,可空):指定列为聚集索引键,并且是唯一的。 可以有空值;

 

聚集主键与非聚集主键的区别(聚集索引树叶子节点为真实数据)

聚集索引存储记录是物理上连续存在,而非聚集索引是逻辑上的连续,物理存储并不连续

聚集索引一个表只有一个,非聚集索引一个表可以存在多个。

 

 

–非聚集主键
CREATE TABLE TEST
(
“ID” INT NOT NULL,
“C1” VARCHAR(10),
NOT CLUSTER PRIMARY KEY(“ID”)) ;

 

–聚集主键
CREATE TABLE TEST
(
“ID” INT NOT NULL,
“C1” VARCHAR(10),
CLUSTER PRIMARY KEY(“ID”)) ;

 

聚集主键改成非聚集主键,只能用如下步骤:
1、先重命名表TEST为TEST1 :
ALTER TABLE TEST RENAME TEST1;
2、新建表TEST和对应的索引:
CREATE TABLE TEST
(
“ID” INT NOT NULL,
“C1” VARCHAR(10),
NOT CLUSTER PRIMARY KEY(“ID”)) ;
3、插入数据:
insert into SYSDBA.TEST
select * from TEST1;
commit;
4、更新这个表的统计信息:
DBMS_STATS.GATHER_TABLE_STATS(‘模式名’,‘表名’,null,100,TRUE,‘FOR ALL COLUMNS SIZE AUTO’);

 

 

 

赞(1)
MySQL学习笔记 » DM8-主键key与大字段冲突问题