欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 文旅 > 游戏 > 达梦数据库迁移到MySQL字段注释缺失问题处理

达梦数据库迁移到MySQL字段注释缺失问题处理

2025/9/14 14:52:28 来源:https://blog.csdn.net/BigCookies/article/details/144699411  浏览:    关键词:达梦数据库迁移到MySQL字段注释缺失问题处理

目录

1、环境信息

2、问题详情

3、处理方案

3.1、提取备用库字段注释

3.2、生成正式库字段注释


1、环境信息

达梦数据库版本:v8

MySQL数据库版本:5.7.11

正式库:通过DTS迁移后的MySQL数据库

备用库:表结构与正式库一致,用于生成字段注释的SQL语句

2、问题详情

利用达梦数据库自带的数据迁移工具(DTS),从达梦数据库迁移表到MySQL数据库,迁移完成后发现表和字段注释缺失。

3、处理方案

3.1、提取备用库字段注释

达梦数据库导出时是和创建表和索引在一起,因此需要单独把字段注释提取出来,利用notepad++进行提取注释的操作。

(1)Ctrl+F选择Mark,标记需要截取的行

(2) 依次点击 菜单栏的【Search】—>【Bookmark】—>【Copy Bookmarked Lines】
打开一个文档复制进去就行了。这样就把达梦数据库表中的所有注释给提取出来了。 

(3)修改成MySQL的修改字段注释的语法格式

 

修改后的符合MySQL的语法格式如下:

(4)MySQL创建一个和正式库表结构一样的库,也就是备用库,并执行上边生成的SQL语句。

注意:一定是在【备用库】中执行的,这个库用完是要删除的。

3.2、生成正式库字段注释

(1)利用Mysql的表 information_schema.COLUMNS 进行数据的拼接

--  查出备用库表的数据(这个是有注释的喔)
DROP TABLE IF EXISTS temp2;
CREATE TEMPORARY TABLE temp2 SELECT
TABLE_SCHEMA,
TABLE_NAME,
COLUMN_NAME,
COLUMN_COMMENT 
FROMinformation_schema.COLUMNS 
WHERETABLE_SCHEMA = '备用库的名称' ;--  查出正式库表的数据(正式库表没有注释)
DROP TABLE IF EXISTS temp1;
CREATE TEMPORARY TABLE temp1 SELECT
TABLE_SCHEMA,
TABLE_NAME,
COLUMN_NAME,
COLUMN_TYPE,
COLUMN_COMMENT 
FROMinformation_schema.COLUMNS 
WHERETABLE_SCHEMA = '正式库的名称';-- 将数据更新到临时表temp1中,这时 临时表temp1中就有了注释了
UPDATE temp1 t1,
temp2 t2 
SET t1.COLUMN_COMMENT = t2.COLUMN_COMMENT 
WHEREt1.TABLE_NAME = t2.TABLE_NAME AND t1.COLUMN_NAME = t2.COLUMN_NAME;--  拼接修改表中字段的SQL语句
SELECT'Alter table' , t1.TABLE_NAME,'modify column',t1.COLUMN_NAME,t1.COLUMN_TYPE,'comment' ,"'",t1.COLUMN_COMMENT,"'",';'
FROMtemp1 t1
INNER JOIN temp2 on t1.TABLE_NAME = t2.TABLE_NAME and t1.COLUMN_NAME = t2.COLUMN_NAME
WHEREt1.COLUMN_COMMENT != '';

(2)生成修改正式库表的的字段注释的SQL语句

(3)复制出来的语句,放在正式库中执行就行了

(4)删除备用库【注意是备用库】 

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词