在做一个移植的时候报错,违反唯一性约束,检查表结构发现只有主键才有唯一性约束,但是表结构是从oracle直接移植过来到达梦数据库上面的,主键不会出现相同的值,怎么会报错违反唯一性约束呢?检查数据发现是主键字段数据末尾含有空格导致的。

比如在oracle新建一个test表,字段C1作为主键 ,如下:
在这里插入图片描述
插入数据时可以这样写:

INSERT INTO TEST VALUES('A','1')
INSERT INTO TEST VALUES('A ','1')
INSERT INTO TEST VALUES(' A','1')

在这里插入图片描述
这样都能顺利插入表中而不违反主键的约束,但是达梦数据库默认会去掉数据末尾的空格,违反唯一约束性。

解决办法:
修改dm.ini配置文件设置BLANK_PAD_MODE=1即可兼容这一问题。

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐