专栏/Database Thinking/ 文章详情 /

表[xxxxxx]中不能同时包含聚集KEY和大字段

胡li 2022/04/07 3043 0 0
摘要 有时候我们表中需要主键和大字段同时存在,可以修改PK_WITH_CLUSTER解决问题

步骤一:修改PK_WITH_CLUSTER参数

sp_set_para_value(1,'PK_WITH_CLUSTER',0)

复制

参数名 缺省值 属性 说明
PK_WITH_CLUSTER 1 动态,会话级 在建表语句中指定主关键字时,是否缺省指定为 CLUSTER,0:不指定;1:指定注:该参数对列存储表和堆表无效

步骤一:将原始的表、索引、约束的DDL语句右击导出到当前SQL编辑区域
表DDL:
16493224081.png

索引DDL:
image.png
注意:表中的主键DM数据库会自动创建键和索引(INDEX33556255),不需要复制,在创建表的时候指定了主键会自动生成

步骤二:将原始表重命名进行备份,并将已备份的原始表已有的索引修改下名称

alter table TABLE_1 rename TABLE_1 to TABLE2

复制

记得去管理工具修改原始表的约束、索引名,系统自动生成的不用管,不会影响新表的创建

步骤三:修改步骤一中导出的表定义涉及的列,如果是已存在则将类型修改为大字段类型,如果不存在,则进行列和类型的添加,别忘记了用户创建的键,索引、约束。

CREATE TABLE "DEMT"."TABLE_1"
(
"ID" INT  NOT NULL,
"NAME" CHAR(10),
"FIMAGEDATA" TEXT,
CLUSTER PRIMARY KEY("ID")) 

复制

步骤四:使用insert ino xxxx select * from 备份的原始表,完成操作

INSERT INTO DEMT.TABLE_1  SELECT * FROM DEMT.TABLE2;

复制

评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服