使用达梦数据库穿件新表后往新表中增加TEXT类型字段报错,错误信息如下:

错误号:   -3243

错误消息: 第1 行附近出现错误:
表[TABLE_2]中不能同时包含聚集KEY和大字段

---------------------------------
alter table "GFSTACK"."TABLE_2" add column("COLUMN_2" TEXT);

错误截图:

如果建表时直接新增一列TEXT字段则没问题,两张表的建表语句如下:

CREATE TABLE "GFSTACK"."TABLE_2"
(
"COLUMN_1" VARCHAR(50) NOT NULL,
CLUSTER PRIMARY KEY("COLUMN_1")) STORAGE(ON "MAIN", CLUSTERBTR) ;


CREATE TABLE "GFSTACK"."TABLE_3"
(
"COLUMN_1" VARCHAR(50) NOT NULL,
"COLUMN_2" TEXT,
NOT CLUSTER PRIMARY KEY("COLUMN_1")) STORAGE(ON "MAIN", CLUSTERBTR) ;

区别在于一个是“CLUSTER PRIMARY KEY”,一个是“NOT CLUSTER PRIMARY KEY”,如果建表时指定“NOT CLUSTER PRIMARY KEY”则可以随时添加大字段

如果是通过DM管理工具(类似于PLSQL)界面建表或者hibernate自动建表,主键是不会指定“CLUSTER”或“NOT CLUSTER”的,直接就是“PRIMARY KEY”,这个时候就需要手动修改达梦数据库配置了

咨询达梦技术交流群,回复修改dm.ini配置文件中的“PK_WITH_CLUSTER”配置为0即可,其实通过DM控制台工具修改一样可以,修改完成后记得重启数据库实例,如果不行,则重启服务器

01-03 06:38