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中。