---
title: DML 语句调用函数报错 table is mutating-OceanBase数据库使用指南
description: 了解OceanBase数据库在实际应用中关于DML 语句调用函数报错 table is mutating相关的常见问题和使用技巧，帮助您快速解决DML 语句调用函数报错 table is mutating的难题。
---
切换语言

- 简体中文
- English

划线反馈

# DML 语句调用函数报错 table is mutating

更新时间：2026-05-28 02:06

适用版本： V2.1.x、V2.2.x、V3.1.x、V3.2.x 内容类型：TechNote  

## 适用版本

OceanBase 数据库 V2.x、V3.x 版本。

## 问题现象

使用 DML 语句调用函数（函数中也对同一个表使用 DML 语句），发生类似如下报错信息。

- ERROR 5791 (HY000): table is mutating, trigger/function may not see it
 - ErrorCode = 1442, SQLState = HY000, Details = table is mutating, trigger/function may not see it
 - ErrorCode = 1442, SQLState = HY000, Details = Can't update table 'xxx' in stored function/trigger because it is already used by statement which invoked this stored function/trigger.
 - ORA-04091: table is mutating, trigger/function may not see it

测试 SQL：

```shell
create table resFun(var1 char(50),var2 char(50),var3 char(50));

DELIMITER //
create function func3(var1 char(50))
returns char(50)
begin
insert into resFun (var1) values (var1);
return 'aaa';
end //
DELIMITER ;

insert into resFun values ('1','1',func3('1'));
create table resFun(var1 varchar2(50),var2 varchar2(50),var3 varchar2(50));

create or replace function func3(var1 in number)
return number
is
begin
insert into resFun (var1) values (var1);
return 66;
end;
/

insert into resFun values (12,12,func3(12));

```

## 问题原因

OceanBase 数据库的功能限制，执行外层 insert 后，表的状态被修改为 mutating，再次执行函数中的查询时便会报错。

## 解决方法

- 升级 OceanBase 数据库至 V4.x 版本
 - 或者修改 SQL 以避免使用 DML 语句调用函数并且函数中也对同一个表使用 DML 语句的情景。

Previous

[DML 语句报错 -6244 out of transaction threshold](https://www.oceanbase.com/knowledge-base/oceanbase-database-1000000000209998)

Next

[为什么 OceanBase 数据库在进行多分区扫描时，会抛弃索引选择全表扫描](https://www.oceanbase.com/knowledge-base/oceanbase-database-1000000000298690) ![有帮助](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) 咨询热线
