首批通过分布式安全可靠测评,为关键业务系统打造
OceanBase 数据库 MySQL 模式执行 Delete 语句报 fatal internal error
更新时间:2026-05-28 02:06
问题描述
当对一张表执行 delete 操作时,会报 fatal internal error。具体错误信息如下。
ERROR 4377 (HY000): fatal internal error in [check_delete_index_legitimacy]
以下为在 OceanBase 数据库 V3.2.3.0 版本上的示例。
创建测试表。
obclient [db_mysql]> create table t1(id int primary key, r1 varchar(20),fulltext key fdx_r1(r1)); Query OK, 0 rows affected (0.624 sec)插入测试数据。
obclient [db_mysql]> insert into t1 values (1,'test'); Query OK, 1 row affected (3.918 sec)根据条件删除数据。
obclient [db_mysql]> delete from t1 where id =1; ERROR 4377 (HY000): fatal internal error in [check_delete_index_legitimacy]查看数据库版本。
obclient [db_mysql]> select ob_version();输出结果如下。
+--------------+ | ob_version() | +--------------+ | 3.2.3.0 | +--------------+ 1 row in set (0.004 sec)
问题原因
OceanBase 数据库当前对全文索引功能的支持不完善,存在全文索引导致的正确性校验检查报错。
注意
在某些 OceanBase 数据库版本中,默认不支持创建全文索引。
适用版本
OceanBase 数据库 V2.x 和 V3.x 版本。
解决方法
不建议在 OceanBase 数据库 V1.x~V3.x 版本中使用全文索引,建议删除全文索引,通过以下方式替代。
使用标准的 INSTR 函数。
obclient> SELECT *FROM mytext WHERE INSTR (thetext, 'Oracle') > 0;使用标准的 LIKE 操作符。
obclient> SELECT* FROM mytext WHERE thetext LIKE '%Oracle%';