DM7达梦7数据库迁移若干问题和方案(乱记一笔)

前言

达梦这个数据库恐怕让很多人又爱又恨吧,爱的是LD行业都用它、你不得不去熟悉他它,毕竟这是国产的数据库么不是。恨的是很多时候它真的很不好用,而网上你能找到的关于它的介绍是少之又少,就算有,可能还是错的。我开这个帖子,主要是为了自己方便,记录一下遇到的达梦问题。

需求一 如何不通过迁移工具快速复制一个数据库内的两个模式Schema

问题描述

我想在一台达梦7同一个数据库上,复制一个用户的默认schema下面的所有表。但是我使用迁移工具总是不成功,于是我思考还有什么方法解决这个问题。

解决步骤

  1. 我用DB管理员账户来新建一个用户,这样这个用户会默认创建一个同名的schema

  2. 我用DB管理员账户给这个schema赋予源数据的访问权限

  3. 我登录这个新用户,再通过运行形如下面的命令就可以将表一个个重建了

create table 新模式名.表名 as select * from 老模式名.表名;

关键技巧

生成这个命令,我用的是chatgpt,先获取当前schema所有的表名,再复制一下

SELECT TABLE_NAME FROM USER_TABLES;

然后复制成一行一个表名的文本形式,放到chatgpt中,跟他说

请将这个列表
TABLE_A
TABLE_B
TABLE_C
里的每一行都替换这个句子中的X,并最后输出替换完毕的所有句子
create table 新模式名.X as select * from 老模式名.X
输出时,不需要有每行的行号 每行最后加个分号结束

这样就得到了完美的结果,形如下列

create table 新模式名.TABLE_A as select * from 老模式名.TABLE_A;
create table 新模式名.TABLE_B as select * from 老模式名.TABLE_B;
create table 新模式名.TABLE_C as select * from 老模式名.TABLE_C;
  • 6
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值