创建外键报错:ERROR 4034 (HY000): Deserialize error

OceanBase Deploy: 3.1.1
REVISION: 94b5853a18ad1ad09d5afc30d9edb44643dd488c
BUILD_BRANCH: HEAD
BUILD_TIME: Jan 06 2025 11:35:49OURCE

【备注】基于 LLM 和开源文档 RAG 的论坛小助手已开放测试,在发帖时输入 [@论坛小助手] 即可召唤小助手,欢迎试用!
CREATE TABLE IF NOT EXISTS type (
id BIGINT auto_increment COMMENT ‘ID’,
name VARCHAR(32) NOT NULL COMMENT ‘设备类型’,
UNIQUE unique_indexes (name),
PRIMARY KEY (id)
) ENGINE=InnoDB COMMENT ‘设备类型’;

CREATE TABLE IF NOT EXISTS device (
id BIGINT auto_increment COMMENT ‘ID’,
name VARCHAR(32) NOT NULL COMMENT ‘设备名称’,
sn VARCHAR(32) COMMENT ‘设备编号’,
type_id BIGINT,
UNIQUE unique_indexes (type_id, sn),
PRIMARY KEY (id),
CONSTRAINT fk_device_type FOREIGN KEY (type_id)
REFERENCES type (id)
ON DELETE CASCADE
ON UPDATE CASCADE
) ENGINE=InnoDB COMMENT ‘设备’;
创建第二个表报错
ERROR 4034 (HY000): Deserialize error

根因分析场景: DDL失败
根因分析命令: obdiag rca run --scene=ddl_failure
日志采集场景: SQL执行出错
日志采集命令: obdiag gather scene run --scene=observer.sql_err --env “{db_connect=’-h127.0.0.1 -P2881 -utest@test -p****** -Dtest’, trace_id=‘Yxx’}”

推荐使用 obdiag 工具进行根因分析和日志采集,以便确认问题所在。上述命令将帮助您收集创建外键时的相关错误信息,并对DDL失败的场景进行深入分析。

为了更好地帮助您解决问题,请您提供以下信息:

  1. 创建外键的具体SQL语句是什么?
  2. 是否在创建外键之前进行了其他操作(如表结构调整或数据导入)?如果有,请描述相关操作。
  3. 出现错误时,是否可以提供当时的trace_id或者具体的错误堆栈信息?
  4. 当前OceanBase数据库的版本号是多少?
  5. 是否可以重现该问题?如果可以,请简要描述重现步骤。

附上敏捷诊断工具 obdiag 使用帮助链接

版本3啊

看下observer的版本是?

报错时间的observer.log日志 也提供一下

目前ob3.1.1不推荐使用了 建议使用ob425