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

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


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值