在导入Oracle数据库的时候违反唯一约束条件是为啥?要怎么解决?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在导入Oracle数据库的时候违反唯一约束条件是为啥?要怎么解决?相关的知识,希望对你有一定的参考价值。

反唯一约束条件是主键重复。解决方法如下:

1、非空约束条件可以在建表时建立,也可以在建表后建立。如下图。

2、在数据字典中查询刚刚建立的非空约束条件。

3、唯一约束条件用于保证字段或者字段的组合不出现重复值。

4、同样唯一约束条件可以在建表时建立,也可以在建表后建立。

5、最后在数据字典中查询唯一约束条件。

参考技术A 反唯一约束条件?应该是主键重复吧。
解决的方法要看你用什么方法导入数据了。
如果是oracle的import命令,可以设定参数,采用忽略错误导入的方式导入,或者无条件覆盖原数据。追问

那要怎么写这个命令?

追答

给你个参考网页吧

参考资料:http://blog.csdn.net/webajax/article/details/4506071

本回答被提问者采纳
参考技术B 1.你导出时可能只导出数据,没有包括对象结构,而该库的对象与导出库的不一样,可能原库没有约束索引,而本地的有引起的。

2.先把该表的所有唯一索引或关键索引给删除掉,再进行导入。导入后删除重复记录,再建删除掉的那些约束索引。
参考技术C 主键冲突。
一般是因为导入数据表中原来有数据。
把所有表都清一遍,再重新导入就可以了。追问

我清空了用户下的表啊,但是还不行!而且我建了两个用户,都是一样的结果!

追答

违反唯一约束的表是哪个?
你导的是按用户导入还是全库?
如果多用户,有可能有同义词造成对象重复。
实在不行,先把错误的表摘出来。先把其他的表导入。回头再看那个表到底咋回事。

参考技术D 可能你导出了数据库全库而不是某个用户下的表,如 导出时带了参数full=y

ORA-00001: 违反唯一约束条件

oracle 中执行 sql 语句时,报错:“ORA-00001: 违反唯一约束条件 SYS_C00149474” --第一步:查看违反约束的序列对应的数据库表与字段 select a.constraint_name,a.constraint_type,b.column_name,b.table_n

以上是关于在导入Oracle数据库的时候违反唯一约束条件是为啥?要怎么解决?的主要内容,如果未能解决你的问题,请参考以下文章

ORA-02292: 违反完整约束条件 处理

ORA-00001: 违反唯一约束条件

ORA-00001: 违反唯一约束条件

oracle报错 ORA-02290: 违反检查约束条件问题

Oracle数据库中违反唯一约束的处理

重复键违反唯一约束