You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

创建唯一索引遇ORA-01452错误,如何定位重复键值?

定位Oracle唯一索引重复键值的方法

要找出导致ORA-01452错误的重复键值,可以通过以下SQL语句查询:

1. 找出重复的键值组合及重复次数

执行以下SQL,会返回FRIENDLYURLENTRYID、LANGUAGEID、CTCOLLECTIONID这三个字段的重复组合,以及每组的重复次数:

SELECT "FRIENDLYURLENTRYID", "LANGUAGEID", "CTCOLLECTIONID", COUNT(*) AS duplicate_count
FROM "PITEST000002_500"."FRIENDLYURLENTRYLOCALIZATION"
GROUP BY "FRIENDLYURLENTRYID", "LANGUAGEID", "CTCOLLECTIONID"
HAVING COUNT(*) > 1;

2. 查看重复记录的完整详情

如果需要查看这些重复组合对应的所有完整记录,可以使用窗口函数标记重复行:

SELECT *
FROM (
    SELECT 
        t.*,
        ROW_NUMBER() OVER (
            PARTITION BY "FRIENDLYURLENTRYID", "LANGUAGEID", "CTCOLLECTIONID" 
            ORDER BY "FRIENDLYURLENTRYID"
        ) AS row_num
    FROM "PITEST000002_500"."FRIENDLYURLENTRYLOCALIZATION" t
)
WHERE row_num > 1;

这个语句会列出所有属于重复组合的行,方便你进一步分析和处理重复数据。

处理完重复数据(比如删除重复行、修改冲突字段值)后,即可重新执行创建唯一索引的语句。

内容的提问来源于stack exchange,提问作者Hani

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 22:05:26