基于湖库一体架构,统一管理结构化、半结构化与非结构化等多模态数据,一个系统承载事务处理、实时分析与 AI 工作负载。
修改视图
更新时间:2023-07-18 17:25:58
您可以使用 ALTER VIEW 语句来修改视图的定义。本文为您介绍如何修改普通视图的定义。
语法
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 语句检索的列可以是对表列的简单引用。也可以是使用函数、常量值、操作符等的表达式。 |
示例
查看视图
v的结构。obclient> DESC v; +--------+---------------+------+-----+---------+-------+ | FIELD | TYPE | NULL | KEY | DEFAULT | EXTRA | +--------+---------------+------+-----+---------+-------+ | ID | NUMBER(38) | YES | NULL | NULL | NULL | | NAME | VARCHAR2(256) | YES | NULL | NULL | NULL | | C_DATE | DATE | YES | NULL | NULL | NULL | | AGE | NUMBER(38) | YES | NULL | NULL | NULL | | SEX | VARCHAR2(256) | YES | NULL | NULL | NULL | +--------+---------------+------+-----+---------+-------+ 5 rows in set查看视图
v的创建。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"."C_DATE" AS "C_DATE","B"."AGE" AS "AGE","A"."SEX" AS "SEX" from "SYS"."T1" "A","SYS"."T2" "B" where ("A"."ID1" = "B"."ID2") CHARACTER_SET_CLIENT: utf8mb4 COLLATION_CONNECTION: utf8mb4_bin 1 row in set查看
t3表的表结构。obclient> DESC t3; +--------+---------------+------+-----+---------+-------+ | FIELD | TYPE | NULL | KEY | DEFAULT | EXTRA | +--------+---------------+------+-----+---------+-------+ | ID | NUMBER | YES | NULL | NULL | NULL | | NAME | VARCHAR2(128) | YES | NULL | NULL | NULL | | C_DATE | DATE | YES | NULL | NULL | NULL | | AGE | NUMBER(38) | YES | NULL | NULL | NULL | | SEX | VARCHAR2(128) | YES | NULL | NULL | NULL | +--------+---------------+------+-----+---------+-------+ 5 rows in set将视图
v的定义修改为t3表的定义。obclient> CREATE OR REPLACE FORCE VIEW v AS SELECT * FROM t3; Query OK, 0 rows affected再次查看视图
v的结构。obclient> DESC v; +--------+---------------+------+-----+---------+-------+ | FIELD | TYPE | NULL | KEY | DEFAULT | EXTRA | +--------+---------------+------+-----+---------+-------+ | ID | NUMBER | YES | NULL | NULL | NULL | | NAME | VARCHAR2(128) | YES | NULL | NULL | NULL | | C_DATE | DATE | YES | NULL | NULL | NULL | | AGE | NUMBER(38) | YES | NULL | NULL | NULL | | SEX | VARCHAR2(128) | YES | NULL | NULL | NULL | +--------+---------------+------+-----+---------+-------+ 5 rows in set