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中。
本文介绍在Oracle数据库中,如何解决因主键冲突导致的表导入失败问题。通过重命名原有表及其主键,实现成功导入新表。
1万+

被折叠的 条评论
为什么被折叠?



