您的位置:首页 > 数据库

在用plsql导入表的时候(选择create方式),报错:“名称已被一现有约束条件占用”。

2016-12-12 16:57 176 查看
1做如下操作

test1/test1@localhost:1521/orcl,该oracle用户登录进去,有Auth_User表。

test2/test2@localhost:1521/orcl,该oracle用户登录进去,也有Auth_User表。

我想让这两个表存在于同一个数据库中,即将test2/test2@localhost:1521/orcl的Auth_user表导出为pde,然后导入到test1/test1@localhost:1521/orcl中。

我先将test1/test1@localhost:1521/orcl的Auth_User表重命名为Auth_User_Old,然后将test2/test2@localhost:1521/orcl的Auth_user的pde,导入到

test1/test1@localhost:1521/orcl中。

2报错

在用plsql导入表的时候(选择create方式),报错:“名称已被一现有约束条件占用”。

会有问题吗?会影响导入的表吗?



3原因

原因是oracle数据库中,每一个表都有一个唯一主键,而主键是不允许重复的。已经存在PK_Auth_User主键了,而新导入的表,主键还是PK_Auth_User,因此会报错。



5会带来什么影响?

没有了主键的约束,即插入的时候ID可能会重复,但是如果使用oracle的UUID,产生32位ID,是不可能重复的,这个影响也就不存在了。

如果非得要设置主键的话,直接右击表,edit,keys,重新写入一个不重复的name即可。



6解决办法

在我将test1/test1@localhost:1521/orcl的Auth_User表重命名为Auth_User_Old时,将主键名称也一并重命名,不就行了。

然后将test2/test2@localhost:1521/orcl的Auth_user的pde,导入到test1/test1@localhost:1521/orcl中。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐