---
title: "修改视图 | OceanBase 文档中心"
description: "修改视图 本文为您介绍如何修改普通视图的定义。 语法 ALTER VIEW view_name [(column_name_list)] AS select_stmt; column_name_list: column_name [, column_name ...] 参数解释 参数 描述 select_stmt 是…"
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.1.4 社区版

# 修改视图

更新时间：2023-08-03 17:20:32

[编辑](https://github.com/oceanbase/oceanbase-doc/edit/V3.1.4/zh-CN/1400.developer-guide/200.create-and-manage-database-objects/1000.create-and-manage-views/300.modify-view.md)  

本文为您介绍如何修改普通视图的定义。

## 语法

```sql
ALTER VIEW view_name [(column_name_list)] AS select_stmt;

column_name_list:
    column_name [, column_name ...]

```

### 参数解释

| 参数 | 描述 |
| --- | --- |
| select_stmt | 是一种 `SELECT` 语句。它给出了视图的定义。该语句可以从基表或其他视图进行选择。 |
| column_name_list | 视图必须具有唯一的列名，不得有重复，就像基表那样。缺省情况下，由 `SELECT` 语句检索的列名将用作视图列名。 要想为视图列定义明确的名称，可使用可选的 `column_name_list` 子句，列出由逗号隔开的 ID。`column_name_list` 中的名称数目必须等于 `SELECT`语句检索的列数。 `SELECT` 语句检索的列可以是对表列的简单引用。也可以是使用函数、常量值、操作符等的表达式。 |

## 示例

1. 查看视图 `v` 的结构。

   ```sql
   obclient> DESC v;
   +-------+--------------+------+-----+---------+-------+
   | Field | Type         | Null | Key | Default | Extra |
   +-------+--------------+------+-----+---------+-------+
   | id    | int(11)      | YES  |     | NULL    |       |
   | name  | varchar(256) | YES  |     | NULL    |       |
   | date  | date         | YES  |     | NULL    |       |
   | age   | int(11)      | YES  |     | NULL    |       |
   | sex   | varchar(256) | YES  |     | NULL    |       |
   +-------+--------------+------+-----+---------+-------+
   5 rows in set

   ```
 2. 查看视图 `v` 的创建。

   ```sql
   obclient> show create table v\G
   *************************** 1. row ***************************
                   View: v
            Create View: CREATE VIEW `v` AS select `a`.`id1` AS `id`,`a`.`name` AS `name`,`b`.`date` AS `date`,`b`.`age` AS `age`,`a`.`sex` AS `sex` from `ny`.`t1` `a`,`ny`.`t2` `b` where (`a`.`id1` = `b`.`id2`)
   character_set_client: utf8mb4
   collation_connection: utf8mb4_general_ci
   1 row in set

   ```
 3. 查看 `t3` 表的表结构。

   ```sql
   obclient> DESC t3;
   +-------+--------------+------+-----+---------+-------+
   | Field | Type         | Null | Key | Default | Extra |
   +-------+--------------+------+-----+---------+-------+
   | id    | int(10)      | YES  |     | NULL    |       |
   | name  | varchar(256) | YES  |     | NULL    |       |
   | date  | date         | YES  |     | NULL    |       |
   | age   | int(11)      | YES  |     | NULL    |       |
   | sex   | varchar(128) | YES  |     | NULL    |       |
   +-------+--------------+------+-----+---------+-------+
   5 rows in set

   ```
 4. 将视图 `v` 的定义修改为 `t3` 表的定义。

   ```sql
   obclient> CREATE OR REPLACE VIEW v AS SELECT * FROM t3;
   Query OK, 0 rows affected

   ```
 5. 再次查看视图 `v` 的结构。

   ```sql
   obclient> desc v;
   +-------+--------------+------+-----+---------+-------+
   | Field | Type         | Null | Key | Default | Extra |
   +-------+--------------+------+-----+---------+-------+
   | id    | int(10)      | YES  |     | NULL    |       |
   | name  | varchar(256) | YES  |     | NULL    |       |
   | date  | date         | YES  |     | NULL    |       |
   | age   | int(11)      | YES  |     | NULL    |       |
   | sex   | varchar(128) | YES  |     | NULL    |       |
   +-------+--------------+------+-----+---------+-------+
   5 rows in set

   ```

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