---
title: "关于修改表结构 | OceanBase 文档中心"
description: "关于修改表结构 本文介绍如何在 OceanBase 数据库 MySQL 模式下修改表名、修改列名、修改列类型、增加列、删除列。 说明 有关修改表结构的详细信息，请参见 ALTER TABLE 。 前提条件 当前用户需要对表具有 ALTER 权限。 示例 创建示例表 tbl1 。 obclient [test]&gt; CR…"
image: https://mdn.alipayobjects.com/huamei_22khvb/afts/img/A*OSPzQ6GUQF4AAAAAQHAAAAgAeiGDAQ/original
---
切换语言

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

文档反馈![](https://mdn.alipayobjects.com/huamei_22khvb/afts/img/A*P8CuR4UJ_FkAAAAAAAAAAAAADiGDAQ/original) OceanBase 数据库分布式版 - V 3.2.3 企业版 LTS

# 关于修改表结构

更新时间：2023-07-19 13:03:07

本文介绍如何在 OceanBase 数据库 MySQL 模式下修改表名、修改列名、修改列类型、增加列、删除列。

> **说明**
>
>  
>
> 有关修改表结构的详细信息，请参见 [ALTER TABLE](https://www.oceanbase.com/docs/enterprise-oceanbase-database-cn-10000000000356919)。

## 前提条件

当前用户需要对表具有 `ALTER` 权限。

## 示例

创建示例表 `tbl1`。

```sql
obclient [test]> CREATE TABLE tbl1(col1 INT,col2 INT,col3 VARCHAR(50));
Query OK, 0 rows affected

```

### 示例一：修改表名

**语法：**

```sql
ALTER TABLE table_name RENAME new_table_name;
#或
RENAME TABLE table_name TO new_table_name;

```

**示例如下：**

将表 `tbl1` 的名称改为 `test_tbl1`。

```sql
obclient [test]> ALTER TABLE tbl1 RENAME test_tbl1;
Query OK, 0 rows affected

obclient [test]> SHOW TABLES;
+----------------+
| Tables_in_test |
+----------------+
| test_tbl1      |
+----------------+
1 row in set

```

### 示例二：修改列名

**语法：**

```sql
 ALTER TABLE table_name CHANGE[COLUMN] column_name new_column_name new_column_name_definition;

```

**示例如下：**

将 `test_tbl1` 表中列 `col3` 的名称改成 `name`。

```sql
obclient [test]> ALTER TABLE test_tbl1 CHANGE col3 name VARCHAR(50);
Query OK, 0 rows affected

obclient [test]> DESC test_tbl1;
+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| col1  | int(11)     | YES  |     | NULL    |       |
| col2  | int(11)     | YES  |     | NULL    |       |
| name  | varchar(50) | YES  |     | NULL    |       |
+-------+-------------+------+-----+---------+-------+
3 rows in set

```

### 示例三：修改列类型

**语法：**

```sql
ALTER TABLE table_name MODIFY[COLUMN] new_column_name_type;

```

> **说明**
>
>  
>
> 修改列名和列定义，仅支持增加特定字符数据类型（`VARCHAR`、`VARBINARY`、`CHAR` 等）的长度。

**示例如下：**

将 `test_tbl1` 表中列 `col2` 的数据类型从 `INT(11)` 转换为 `INT(18)`。

```sql
obclient [test]> ALTER TABLE test_tbl1 MODIFY col2 INT(18);
Query OK, 0 rows affected

obclient [test]> DESC test_tbl1;
+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| col1  | int(11)     | YES  |     | NULL    |       |
| col2  | int(18)     | YES  |     | NULL    |       |
| name  | varchar(50) | YES  |     | NULL    |       |
+-------+-------------+------+-----+---------+-------+
3 rows in set

```

### 示例四：增加列

**语法：**

```sql
ALTER TABLE table_name ADD[COLUMN] column_name column_type;

```

> **说明**
>
>  
>
> 暂不支持增加主键列。

**示例如下：**

在 `test_tbl1` 表中，增加 `col4` 列。

```sql
obclient [test]> ALTER TABLE test_tbl1 ADD col4 char(1);
Query OK, 0 rows affected

obclient [test]> DESC test_tbl1;
+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| col1  | int(11)     | YES  |     | NULL    |       |
| col2  | int(18)     | YES  |     | NULL    |       |
| name  | varchar(50) | YES  |     | NULL    |       |
| col4  | char(1)     | YES  |     | NULL    |       |
+-------+-------------+------+-----+---------+-------+
4 rows in set

```

### 示例五：删除列

**语法：**

```sql
ALTER TABLE table_name DROP[COLUMN] column_name;

```

> **说明**
>
>  
>
> 删除列时，不允许删除主键列或者包含索引及非空的列。

**示例如下：**

在 test_tbl1 表中，删除 col4 列。

```sql
obclient [test]> ALTER TABLE test_tbl1 DROP col4;
Query OK, 0 rows affected (0.036 sec)

```

 上一篇 下一篇 ![有帮助](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) 咨询热线
