【发布时间】:2014-03-10 22:58:06
【问题描述】:
我正在运行一个脚本,该脚本会触发一个选择查询并将结果插入到一个表中。
选择查询是
select distinct a.child child_id, a.parent parent_id from cat a, par b WHERE a.child=b.catentid and b.catenttype_id='Product' and a.reltype_id='PRODUCT_ITEM'
并插入到创建为
的表中create table TI_CAT_0 ( child_id NUMBER not null,parent_id NUMBER not null,PRIMARY KEY (child_id))
但我在以“SYS_C00187123”身份运行脚本时遇到了唯一键约束违规,我在 all_constraints 表中检查了这个约束名称,并且只在 TI_CAT_0 表中检查了它。
由于我使用 distinct 命令,我不确定为什么会出现这种违规行为。它是一个 Oracle 数据库。
【问题讨论】:
-
您确定您选择的
child_id不存在于TI_CAT_0表中 -
distinct 对 select 的 all 列进行操作,而不仅仅是第一列。因此,
child_id的值可以相同,parent_id的值不同,它仍然是不同的。 -
@a_horse_with_no_name 那么我们有什么办法可以拥有不同的子 ID?