为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】: DM8开发版
【操作系统】:CentOS7
【CPU】: x86_64
【问题描述】*:初始化参数:CHARSET为1对应UTF-8,LENGTH_IN_CHAR为1对应以字符为单位存储,建表语句如下
CREATE TABLE "DCPMS"."SYSTEM_LIST"
(
"ORG_ACCT" CHAR(6) DEFAULT ''
NOT NULL,
"SYSTEM_NO" VARCHAR(20) DEFAULT ''
NOT NULL,
"INNER_SYSTEM_NO" VARCHAR(40) DEFAULT ''
NULL,
"SYSTEM_NAME" VARCHAR(40) DEFAULT ''
NULL,
"SYSTEM_SHORT_NAME" VARCHAR(40) DEFAULT ''
NULL,
"SYSTEM_ENGLISH_NAME" VARCHAR(100) DEFAULT ''
NULL,
"SYSTEM_CLASS" CHAR(1) DEFAULT ''
NULL,
"PARENT_SYSTEM_NO" VARCHAR(20) DEFAULT ''
NULL,
"PARENT_SYSTEM_NAME" VARCHAR(40) DEFAULT ''
NULL,
"SYSTEM_IF_THIRD" CHAR(1) DEFAULT '否'
NULL,
"SYSTEM_TYPE" CHAR(1) DEFAULT ''
NULL,
"SYSTEM_LEVEL" CHAR(1) DEFAULT ''
NULL,
"SECURITY_LEVEL" CHAR(1) DEFAULT ''
NULL,
"BUILD_WAY" CHAR(1) DEFAULT ''
NULL,
"DEPLOYMENT_METHOD" CHAR(1) DEFAULT ''
NULL,
"FUNCTION_DESC" VARCHAR(200) DEFAULT ''
NULL,
"BELONG_DEPARTMENT" VARCHAR(40) DEFAULT ''
NULL,
"BELONG_PRINCIPAL_ID" VARCHAR(20) DEFAULT ''
NULL,
"BELONG_PRINCIPAL_NAME" VARCHAR(20) DEFAULT ''
NULL,
"DEV_DEPARTMENT" VARCHAR(40) DEFAULT ''
NULL,
"DEV_PRINCIPAL_ID" VARCHAR(20) DEFAULT ''
NULL,
"DEV_PRINCIPAL_NAME" VARCHAR(40) DEFAULT ''
NULL,
"PARTNER_NAME" VARCHAR(40) DEFAULT ''
NULL,
"PARTNER_PRINCIPAL_NAME" VARCHAR(20) DEFAULT ''
NULL,
"SYSTEM_STATUS" CHAR(1) DEFAULT ''
NULL,
"ONLINE_DATETIME" TIMESTAMP(0) DEFAULT '1970-01-01 00:00:00'
NULL,
"OFFLINE_DATETIME" TIMESTAMP(0) DEFAULT '1970-01-01 00:00:00'
NULL,
"RESOURCE_DESC" VARCHAR(500) DEFAULT ''
NULL,
"VALID_FLAG" CHAR(1) DEFAULT ''
NULL,
"CREATE_ID" VARCHAR(20) DEFAULT ''
NULL,
"CREATE_NAME" VARCHAR(40) DEFAULT ''
NULL,
"CREATE_DATETIME" TIMESTAMP(0) DEFAULT CURRENT_TIMESTAMP()
NULL,
"UPDATE_ID" VARCHAR(20) DEFAULT ''
NULL,
"UPDATE_NAME" VARCHAR(40) DEFAULT ''
NULL,
"UPDATE_DATETIME" TIMESTAMP(0) DEFAULT CURRENT_TIMESTAMP()
NULL,
"RESERVE_STRING1" VARCHAR(200) DEFAULT ''
NULL
);
其中"SYSTEM_IF_THIRD" CHAR(1) DEFAULT '否' NULL,
这一句提示约束错误,将CHAR(1)改为CHAR(3)则正常,如果去掉DEFAULT列类型为CHAR(1)则正常建表,可以插入1个中文字符。
我的疑问是我配置的以字符存储为什么CHAR(1) DEFAULT ‘否’ 会错误,是不是有什么其他参数需要配置
LENGTH_IN_CHAR应该是针对VARCHAR类型的参数,CHAR类型不适用,这个可以把类型改成VARCHAR