迁移oracle表注释列注释到mysql

本文注释迁移的前提是表结构已迁移完成,步骤总结如下:

注:oracle库中有很多BIN$开头的表,是由于回收站中的表没有清空,

删除oracle中回收站中的表
select * from recyclebin where type='TABLE';
PURGE RECYCLEBIN


1.在oracle中查询数据库的所有表的表注释和字段注释,代码如下:
select * from user_tab_comments  -- 获取表注释,查询结果只有table_name,table_type,comments
select * from user_col_comments -- 获取字段注释,查询结果只有table_name,column_name,comments

2.通过工具(我采用navicate)将上面获取的表存储在mysql中的新建表tab_comments和comments

新建tab_comments表,列名为table_name,table_type,comments,

新建comments表,列名为table_name,column_name,comments,将1中结果粘贴到这两个表中,保存。

3.-- 获取生成 表 注释的sql语句
SELECT CONCAT('ALTER TABLE ',table_name,' COMMENT= ','\'',comments,'\'',';') AS statements
FROM tab_comments
WHERE comments IS NOT NULL

新建查询窗口,粘贴进去执行。

4.在mysql中,将comment与information_schema.columns关联并创建包含表名、字段名、字段类型及注释的表:

CREATE TABLE col_comment
SELECT a.table_name,a.column_name,column_type,a.comments
FROM comments AS a,
(SELECT table_name,column_name,column_type
FROM information_schema.columns
WHERE table_schema='gsggws'
ORDER BY table_schema,table_name ) AS b

WHERE LOWER(CONCAT('ggws_',a.table_name))=b.table_name AND a.column_name=b.column_name AND a.comments IS NOT NULL 

由于迁移时,表明添加了前缀,所以做大小写和前缀转换进行联接。

5.在mysql中生成语句
-- 获取生成  字段注释  的sql语句
SELECT CONCAT('ALTER TABLE ggws_',LOWER(table_name),' MODIFY COLUMN ',column_name,' ',column_type,' COMMENT ','\'',comments,'\'',';') AS statements
FROM col_comment
 新建查询窗口,粘贴进去执行。


小意外:  usage  为列名的表添加注释失败,因为usage为mysql关键字。






    
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值