【发布时间】:2019-01-24 06:53:05
【问题描述】:
有一个表 Person(id, name)。我在人员表中插入了 1000 多条记录。 id 和 name 都应该是唯一的。我写了这样的东西
INSERT ALL
INTO PERSON (1, 'MAYUR')
INTO PERSON (2, 'SALUNKE')
.....(1000 records)
SELECT * FROM DUAL;
我在此查询中获得名称的唯一约束。我怎么知道哪条记录特别失败。我在日志中看到的只有这个
从第 3 行开始的错误命令 - ORA-00001: 唯一约束 (UN_PERSON_NAME) 违规。
这并不能告诉确切的记录是重复的。
【问题讨论】:
-
与 insert all 然后选择 * 很混淆,如果你真的想知道哪一行有问题,最好将它们分成单独的一行。
-
首先,插入临时表(temp_person),没有唯一约束,然后按名称分组,看看哪个名称重复