为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。
【迁移工具版本】:Build 2022.07.14
【操作系统】:windows10
【问题描述】:
问题一:使用迁移工具,将mysql表转达梦表时,包含自增列的表,迁移后,无法在管理工具查看列,提示:无效的表名 错误号:-7019
经排查,似乎是生成的sql代码中,将自增部分转换为AUTO_INCREMENT,而达梦中的自增为IDENTITY(,*)。但是迁移入的表可以查看数据,并可以正常执行sql语句。
如下为生成的sql:
(
“id” BIGINT AUTO_INCREMENT NOT NULL,
“project_no” INT NULL,
“business_project” TEXT NULL,
“application_num” INT NULL,
“role_id” BIGINT NULL,
“summary_id” BIGINT NULL
) AUTO_INCREMENT=430
问题二:当mysql的表包含索引时,生成的转换sql语句将之间变为UNIQUE(‘字段名’),导致导入时产生唯一约束报错
(
“BANK_ID” INT AUTO_INCREMENT NOT NULL,
“BANK_NAME” VARCHAR(255) NULL,
“BANK_TYPE” INT NULL,
“QUESTION_LIST” CLOB NULL,
UNIQUE(“BANK_ID”),
UNIQUE(“BANK_ID”)
) AUTO_INCREMENT=10
您好 请问你解决了吗 ,是用低版本的迁移工具吗
关于第一个问题,无效的表名字,这个应该是管理工具的问题,写代码没有考虑到auto_increment这种建表语句,目前建议改为IDENTITY写法
关于第二个问题,这这个mysql端是不是既有该列的主键,又有该列的唯一索引,造成的约束冗余,可能这个迁移工具也存在问题,建议手动创建该类型表结构,再使用迁移工具进行迁移。