跳到主要内容
版本:V1.0.0

ALTER VIEW

描述

该语句用于修改视图的定义。

权限要求

执行 ALTER VIEW 语句,需要当前用户拥有 DROPCREATE VIEW 权限。有关 seekdb 权限的详细介绍,参见 seekdb 的权限分类

语法

ALTER VIEW view_name [(column_name_list)]
AS select_stmt;

column_name_list:
column_name [, column_name ...]

参数解释

参数描述
view_name指定视图名。
column_name_list可选项,指定视图的列名列表。如果未指定列名列表,由 SELECT 语句检索的列名将用作视图列名。SELECT 语句检索的列可以是对表列的简单引用,也可以是使用函数、常量值、运算符等的表达式。视图列名有以下限制:
  • 必须具有唯一的列名,不得有重复。
  • column_name_list 中的名称数目必须等于 SELECT语句检索的列数。
column_name视图的列名称。
select_stmt用于定义视图的查询(SELECT)语句。它给出了视图的定义,可以从基表或其他视图进行选择。有关查询语句的具体结构和选项信息,参见 SELECT 语句

示例

将视图 v1 的定义修改为选择 test_tbl2 中的数据。

  1. 创建表 test_tbl1

    CREATE TABLE test_tbl1 (col1 INT, col2 INT);
  2. 基于表 test_tbl1 创建视图 v1

    CREATE VIEW v1
    AS SELECT * FROM test_tbl1;
  3. 创建表 test_tbl2

    CREATE TABLE test_tbl2 (col1 INT, col2 INT, col3 INT);
  4. 将视图 v1 的定义修改为选择 test_tbl2 中的数据。

    ALTER VIEW v1 AS SELECT * FROM test_tbl2;
  5. 再次查看视图 v1 的定义。

    SHOW CREATE VIEW v1;

    返回结果如下:

    +------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------+----------------------+
    | View | Create View | character_set_client | collation_connection |
    +------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------+----------------------+
    | v1 | CREATE VIEW `v1` AS select `db_test`.`test_tbl2`.`col1` AS `col1`,`db_test`.`test_tbl2`.`col2` AS `col2`,`db_test`.`test_tbl2`.`col3` AS `col3` from `db_test`.`test_tbl2` | utf8mb4 | utf8mb4_general_ci |
    +------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+----------------------+----------------------+
    1 row in set (0.001 sec)

相关文档