为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【DM版本】:8
【操作系统】:centos7
【CPU】:intel
【问题描述】*:
使用数据迁移工具迁移mysql分区表到达梦数据库报错,无效的列。
经过排查,将图中的
PARTITION BY RANGE("(CREATE_DATE)")
改为
PARTITION BY RANGE(CREATE_DATE)
即可正常创建,请问各位老师有没有解决方法,手动建分区表比较麻烦
原始DDL语句:
CREATE TABLE "CITYCODE_GATEWAY_LOG"
(
"ID" BIGINT IDENTITY(1,1) NOT NULL,
"TRACE_ID" VARCHAR(50) NOT NULL,
"REQ_PATH" VARCHAR(200) NOT NULL,
"REQ_ENTITY" VARCHAR(50) NOT NULL,
"REQ_TYPE" TINYINT NULL,
"REQ_DATA" VARCHAR(1000) NULL,
"RESP_DATA" VARCHAR(1000) NULL,
"TIME_CONSUME" INT NOT NULL,
"CREATE_DATE" INT NOT NULL,
"CREATE_TIME" TIMESTAMP(0) DEFAULT CURRENT_TIMESTAMP()
NOT NULL,
"RESP_STATUS" INT DEFAULT 1
NULL
)PARTITION BY RANGE("(CREATE_DATE)")
(PARTITION "P20240101" VALUES LESS THAN (20240101)
,PARTITION "P20240111" VALUES LESS THAN (20240111)
,PARTITION "P20240121" VALUES LESS THAN (20240121)
)
在我本地可以迁移分区表成功,我的mysql版本是8.0.32分区表结构是:
DROP TABLE IF EXISTS t_partition_test;
CREATE TABLE t_partition_test (
id INT,
id1 INT,
id2 INT
)
PARTITION BY LIST (id)
(
PARTITION p_1 VALUES IN (1),
PARTITION p_2 VALUES IN (2),
PARTITION p_3 VALUES IN (3),
PARTITION p_4 VALUES IN (4),
PARTITION p_5 VALUES IN (5)
);
迁移到达梦数据库的分区表表结构是:
CREATE TABLE "SYSDBA"."T_PARTITION_TEST"
(
"ID" INT,
"ID1" INT,
"ID2" INT)
PARTITION BY LIST("ID")
(
PARTITION "P_1" VALUES(1) STORAGE(ON "MAIN", CLUSTERBTR) ,
PARTITION "P_2" VALUES(2) STORAGE(ON "MAIN", CLUSTERBTR) ,
PARTITION "P_3" VALUES(3) STORAGE(ON "MAIN", CLUSTERBTR) ,
PARTITION "P_4" VALUES(4) STORAGE(ON "MAIN", CLUSTERBTR) ,
PARTITION "P_5" VALUES(5) STORAGE(ON "MAIN", CLUSTERBTR)
) STORAGE(ON "MAIN", CLUSTERBTR) ;
使用的迁移工具版本比您的高,您可以向商务人员申请新的工具版本进行测试。
调整ddl中
CREATE_DATE的括号和双引号去掉