---
title: Update 表包含全文索引 / 向量表执行报错 -4007-OceanBase数据库使用指南
description: 了解OceanBase数据库在实际应用中关于Update 表包含全文索引 / 向量表执行报错 -4007相关的常见问题和使用技巧，帮助您快速解决Update 表包含全文索引 / 向量表执行报错 -4007的难题。
---
切换语言

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

划线反馈

# Update 表包含全文索引 / 向量表执行报错 -4007

更新时间：2026-07-17 06:11

适用版本： V4.4.x 内容类型：Troubleshoot  

## 问题现象

对包含全文索引或向量索引的表执行 DML 操作时，如果启用了 index merge 功能，可能会遇到错误码 4007。具体表现为 SQL 更新语句执行失败，并返回错误信息：`complex query with dml on fulltext index / vector index is not supported`。

**报错 SQL 示例：**

```sql
-- 开启 index merge 功能
alter system set _enable_index_merge = true;

-- 创建包含全文索引的表
create table t2(
  id   bigint primary key,
  c1   int,
  c2   int,
  name varchar(200),
  fulltext key ft_name(name) with parser beng,
  key idx_c1(c1)
);

-- 插入测试数据
insert into t2 values (1, 1, 2, 'hello'), (2, 2, 1, 'hi');

-- 执行更新语句，使用 index merge 提示
update /*+ index_merge(t2 idx_c1 idx_c2) */ t2
   set name = 'world'
 where c1 = 1 or c2 = 2;

```

执行上述更新语句时，预期会报错：`complex query with dml on fulltext index is not supported`。

**报错日志：**

在 observer 日志中搜索相关错误信息，可以看到如下关键日志行：

```
[2025-12-15 21:46:47.771744] WDIAG [SQL.OPT] check_das_need_scan_with_domain_id (ob_log_plan.cpp:15852) [78110][T1002_L0_G0][T1002][YB420A6801E8-000645C4F6C5A661-0-0] [lt=0][errcode=-4007] complex query with dml on fulltext index / vector index not supported(ret=-4007)
[2025-12-15 21:46:47.771762] WDIAG check_das_need_scan_with_domain_id (ob_log_plan.cpp:15853) [78110][T1002_L0_G0][T1002][YB420A6801E8-000645C4F6C5A661-0-0] [lt=16][errcode=-4007] complex query with dml on fulltext index is not supported

```

## 关键信息

触发此问题的关键条件组合如下：

1. 配置项 `_enable_index_merge` 被设置为 `true`，允许优化器选择 index merge 路径。
 2. 目标表包含 FULLTEXT、向量或多值索引。
 3. DML 语句的 WHERE 条件促使优化器选择 index merge 路径（例如包含多列的 OR 条件，或使用了 `/*+ index_merge(...) */` 提示）。
 4. 当以上条件同时满足时，优化器会在生成计划阶段报错：`complex query with dml on fulltext index is not supported`。

## 问题原因

当对包含全文索引、向量索引或多值索引的表执行 DML 操作时，表的扫描操作会被标记为需要 `domain_id merge = true`（即表扫描需要同时访问域辅助表）。如果此时开启了配置项 `_enable_index_merge`，优化器可能会倾向于选择 index merge 的扫描路径。

当查询计划恰好有两个索引可供选择，并生成了 `func lookup` 或 `index merge` 路径时，就会触发优化阶段的错误检查逻辑，直接返回 `OB_NOT_SUPPORTED` 错误，并提示 `complex query with dml on fulltext index is not supported`。

**关键触发流程如下：**

1. 开启 `_enable_index_merge` 配置。
 2. 创建包含全文索引/向量索引的表并插入数据。
 3. 构造 UPDATE 或 DELETE 语句。
 4. WHERE 子句中的谓词条件（例如使用 OR 连接多列条件，或使用了 `/*+ index_merge(...) */` 提示）促使优化器选择 index merge 路径。
 5. 生成执行计划时，如果扫描被判定需要 `domain_id merge` 且访问路径为 index merge，则会命中不支持的错误逻辑。

**复现用例：**

```sql
-- 开启 index merge
alter system set _enable_index_merge = true;

-- 用例1：全文索引表
create table t2(
  id   bigint primary key,
  c1   int,
  c2   int,
  name varchar(200),
  fulltext key ft_name(name) with parser beng,
  key idx_c1(c1),
  key idx_c2(c2)
);
insert into t2 values (1, 1, 2, 'hello'), (2, 2, 1, 'hi');
update /*+ index_merge(t2 idx_c1 idx_c2) */ t2
   set name = 'world'
 where c1 = 1 or c2 = 2;
-- 预期报错：complex query with dml on fulltext index is not supported

-- 用例2：向量索引表
CREATE TABLE t3 (
  id bigint PRIMARY KEY,
  status tinyint,
  vector VECTOR(1024),
  KEY idx_status (status),
  VECTOR KEY idx_vector (vector) WITH (DISTANCE=INNER_PRODUCT, TYPE=HNSW, LIB=VSAG)
);
INSERT INTO t3 VALUES (1, 1, NULL);
UPDATE t3 SET status = 2 WHERE id = 1 AND status = 1;
-- 预期报错：ERROR 1235 (0A000): complex query with dml on fulltext index is not supported

```

## 问题的风险及影响

此问题会导致对包含全文索引或向量索引表的 DML 操作（如 UPDATE、DELETE）执行失败，可能影响依赖这些操作的数据更新业务流程。

## 适用版本

- 开启 index merge 功能的 OceanBase 数据库 V4.4.x 版本。
 - 开启 index merge 功能的 OceanBase 数据库 V4.5.1 版本。

## 规避方式

在修复版本发布前，可以通过临时关闭 index merge 功能来规避此问题。执行以下 SQL 命令：

```sql
alter system set _enable_index_merge = false;

```

上一篇

[全文索引模式匹配超长字符串导致语法错误分析与解决](https://www.oceanbase.com/knowledge-base/oceanbase-database-1000000006406869)

下一篇

[远程执行中 DAS 计划出现正确性问题](https://www.oceanbase.com/knowledge-base/oceanbase-database-1000000006519063) ![有帮助](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) 咨询热线
