达梦数据库迁移后-6612 违反唯一性约束问题

记录在Oracle数据迁移至DM后,创建唯一约束报错问题。明明在Oracle中唯一约束能够正常创建,到了达梦就不行,到底什么原因呢。

实验开始:
1.首先创建表test,并插入几条数据,脚本如下:
create table test(c1 varchar(20));

insert into test values(‘张三’);
insert into test values(‘张三 ‘);
insert into test values(’ 张三’);
insert into test values(‘李四’);
insert into test values(‘王五’);
commit;

2.创建唯一约束
在这里插入图片描述

可以看到唯一约束创建失败。

3.分析问题
在实际迁移中,遇到这个问题可能第一反应是存在重复值,然后通过group by去排查,然后发现没有重复值,是不是怀疑人生?
在这里插入图片描述
这种情况可能是由于字段某些值的末尾存在空格导致。如第二条insert中空格。

4.解决问题
解决这个问题只能在初始化数据库时将空格填充模式设为与 oracle 一致。
在这里插入图片描述

在新创建的实例中,再次创建表test。
在这里插入图片描述
再次创建唯一性约束成功。
在这里插入图片描述
所以在需要迁移数据时,先确认源库是否存在该问题,不然的话达梦就需要重新初始化了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值