【发布时间】:2019-03-04 17:58:58
【问题描述】:
我有以下插入语句失败,违反了 ORA-00001 唯一约束(这是违反 PK 的)。 PK 在 c_id,f_id 上。
INSERT
INTO ab (c_id
, d_amt
, e_date
, f_id)
SELECT c_id
, d_amt
, e_date
, (SELECT NVL(MAX(f_id) + 1,1) --this is causing the ORA-00001 error on duplicate c_id's
FROM ab
WHERE c_id = cx.c_id) f_id
FROM xx cx
我的目标是将数据从 xx 插入 ab,如果 xx 中有重复的 c_id 值,那么 insert 语句应该在第一个之后的每个重复值将 f_id 值增加 1。
【问题讨论】:
-
您需要调查
merge声明。
标签: sql oracle sql-insert