---
title: 对大数据量表进行全表主键 +1 更新报错违反唯一约束-OceanBase数据库使用指南
description: 了解OceanBase数据库在实际应用中关于对大数据量表进行全表主键 +1 更新报错违反唯一约束相关的常见问题和使用技巧，帮助您快速解决对大数据量表进行全表主键 +1 更新报错违反唯一约束的难题。
image: https://mdn.alipayobjects.com/huamei_22khvb/afts/img/A*OSPzQ6GUQF4AAAAAQHAAAAgAeiGDAQ/original
---
切换语言

- 中文站 - 简体中文
- International - English
- 日本站 - 日本語

划线反馈

# 对大数据量表进行全表主键 +1 更新报错违反唯一约束

更新时间：2026-08-25 06:51

内容类型：Troubleshoot  

## 问题现象

对数据量较大的表执行针对主键的全表更新（例如 `UPDATE t1 SET id = id + 1`）时会报错，报错信息为违反唯一约束，错误码为 -5024，日志关键字为 `discharge das write buffer failed(ret=-5024)`。

复现示例（Oracle 模式）：

```sql
create table t1 (id int primary key, name varchar2(10));

create sequence s1 start with 1 increment by 1 minvalue 1 maxvalue 999999999999999 nocycle cache 5000 noorder;

create trigger trg1
before insert on t1
for each row
when (NEW.id is null)
begin
  select s1.nextval into :NEW.id from dual;
end;
/

begin
  for i in 1..300000 loop
    insert /*+ append */ into t1 nologging(name) values ('test');
    commit;
  end loop;
end;
/

update t1 set id = id + 1;

```

## 关键诊断信息

### 触发条件

- 表的主键为连续递增（每次 +1）生成，且表数据量较大。
 - 对主键执行全表更新（如 `UPDATE t1 SET id = id + 1`）时触发。

### 事后诊断

- 报错信息：违反唯一约束，错误码 -5024。
 - 日志关键字：`discharge das write buffer failed(ret=-5024)`。

## 问题原因

必要条件：主键为递增 +1 生成，且数据量较大。

执行 UPDATE 操作时，数据库内部会先删除旧数据再插入新数据。当主键值连续递增且数据量较大时，更新过程中新写入的主键值会与尚未处理的既有主键值发生冲突，触发主键唯一约束冲突，导致报错 -5024；数据量较小时不会触发该问题。

## 问题的风险及影响

执行 SQL 报错 -5024，更新操作失败。

## 影响租户

| sys | MySQL | Oracle |
| --- | --- | --- |
| — | — | — |

## 影响版本

OBServer 4.x 版本。

## 解决方法

1. 先删除表的主键。
 2. 执行更新操作。
 3. 更新完成后，重新添加主键。

## 规避方式

避免直接对数据量较大的表执行主键全表更新（如主键整体 +1）；确需更新主键值时，建议先删除主键，完成更新后再重新添加主键。

Previous

[merge into 临时表时在计划执行阶段触发报错-4016 问题排查](https://www.oceanbase.com/knowledge-base/oceanbase-database-1000000006830281)

Next

[带局部索引的表 add/drop/truncate 分区后 DML 出现 4377](https://www.oceanbase.com/knowledge-base/oceanbase-database-1000000006830282) ![有帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*y6ocSqN8cqsAAAAAAAAAAAAAARQnAQ)![无帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*BG9IQJyLHF8AAAAAAAAAAAAAARQnAQ)![反馈](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*eTWdQKCRKHwAAAAAAAAAAAAAARQnAQ)[AI](https://www.oceanbase.com/obi) 咨询热线
