---
title: 执行 DDL 报错 ERROR 1235，不支持更改字符集或字符序-OceanBase数据库使用指南
description: 了解OceanBase数据库在实际应用中关于 执行 DDL 报错 ERROR 1235，不支持更改字符集或字符序相关的常见问题和使用技巧，帮助您快速解决 执行 DDL 报错 ERROR 1235，不支持更改字符集或字符序的难题。
---
切换语言

- 简体中文
- English

划线反馈

# 执行 DDL 报错 ERROR 1235，不支持更改字符集或字符序

更新时间：2026-05-18 09:11

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

## 适用版本

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

## 问题现象

MySQL 租户中执行以下 SQL 报错 `Alter charset or collation type not supported`。

```shell
obclient [test]> ALTER TABLE tb_test1 MODIFY COLUMN err_code varchar(200) COMMENT '错误码';
ERROR 1235 (0A000): Alter charset or collation type not supported

```

## 问题原因

OceanBase 数据库不支持在线修改表的字符集、字符序。如：不支持 utf8mb4_general_ci -> utf8mb4_bin 的转换。

表 tb_test1 的 DDL 定义如下。

```
CREATE DATABASE `xxxxxx`
DEFAULT CHARACTER SET = utf8mb4
DEFAULT COLLATE = utf8mb4_bin;

CREATE TABLE tb_test1 (
  `id` varchar(32) CHARACTER SET utf8mb4 NOT NULL COMMENT 'id',
  `err_code` varchar(100) CHARACTER SET utf8mb4 DEFAULT NULL COMMENT '平台错误码',
  PRIMARY KEY (`id`) )
DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_bin;

```

表 tb_test1 定义时指定了表的字符集和字符序，字段的定义中也指定了字符集，但没有指定字符序，字段的字符序属性使用该字符集默认的字符序。字符集 utf8mb4 的默认字符序是 utf8mb4_general_ci。

```shell
 obclient [oceanbase]> select tenant_id,column_id,column_name,collation_type
 from __all_virtual_column where tenant_id=1001 and  table_id =1100611139454137;
+-----------+-----------+-------------+----------------+
| tenant_id | column_id | column_name | collation_type |
+-----------+-----------+-------------+----------------+
|      1001 |        16 | id          |             45 |
|      1001 |        17 | err_code    |             45 |
+-----------+-----------+-------------+----------------+
2 rows in set (0.011 sec)

```

在执行 ALTER TABLE MODIFY COLUMN 操作时，因为没有指定字段的字符集和字符序列，默认使用表级别的字符集和字符序，在本示例中即 charset=utf8mb4 collation=utf8mb4_bin，因此与原本的字符序定义不一致。

## 解决方法

在 ALTER 语句中显示指定 COLUMN 的 CHARACTER SET 和 COLLATE。

```shell
obclient [test]> ALTER TABLE tb_test1 MODIFY COLUMN err_code varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci COMMENT '错误码';
Query OK, 0 rows affected (0.14 sec)

```

Previous

[字符序导致 SQL 结果集不同](https://www.oceanbase.com/knowledge-base/oceanbase-database-1000000000241873)

Next

[SQL 为 set NCHARACTER_SET_CONNECTION='UTF16' 日志报错 -5044 的原因和解决方法](https://www.oceanbase.com/knowledge-base/oceanbase-database-1000000001886783) ![有帮助](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) 咨询热线
