Spark SQL----ALTER VIEW
一、描述
ALTER VIEW语句可以修改与视图关联的元数据。它可以更改视图的定义,将视图的名称更改为不同的名称,通过设置TBLPROPERTIES设置和取消视图的元数据。
二、RENAME View
重命名现有视图。如果新的视图名称已经存在于源数据库中,则抛出TableAlreadyExistsException。该操作不支持跨数据库移动视图。如果视图是缓存的,则该命令清除视图的缓存数据及其引用它的所有从属项(dependents)。视图的缓存将在下次访问视图时延迟填充。该命令不缓存视图的从属项。
2.1 语法
ALTER VIEW view_identifier RENAME TO view_identifier
2.2 参数
- view_identifier
指定视图名称,可以选择使用数据库名称进行限定。
语法:[ database_name. ] view_name
三、SET View 属性
设置现有视图的一个或多个属性。属性是键值对。如果属性的键存在,则用新值替换这些值。如果属性的键不存在,则将键值对添加到属性中。
3.1 语法
ALTER VIEW view_identifier SET TBLPROPERTIES ( property_key = property_val [ , ... ] )
3.2 参数
- view_identifier
指定视图名称,该名称可以选择性地使用数据库名称进行限定。
语法:[ database_name. ] view_name - property_key
指定属性键。key可能由多个用点分隔的部分组成。
语法:[ key_part1 ] [ .key_part2 ] [ … ]
四、UNSET View 属性
删除现有视图的一个或多个属性。如果指定的键不存在,则会引发异常。使用IF EXISTS可以避免出现异常。
4.1 语法
ALTER VIEW view_identifier UNSET TBLPROPERTIES [ IF EXISTS ] ( property_key [ , ... ] )
4.2 参数
- view_identifier
指定视图名称,该名称可以选择性地使用数据库名称进行限定。
语法:[ database_name. ] view_name - property_key
指定属性键。钥匙可能由多个用点分隔的部分组成。
语法:[ key_part1 ] [ .key_part2 ] [ … ]
五、ALTER View AS SELECT
ALTER VIEW view_identifier AS SELECT语句更改视图的定义。SELECT语句必须有效,并且view_identifier必须存在。
5.1 语法
ALTER VIEW view_identifier AS select_statement
注意,ALTER VIEW语句不支持SET SERDE或SET SERDEPROPERTIES属性。
5.2 参数
- view_identifier
指定视图名称,该名称可以选择性地使用数据库名称进行限定。
语法:[ database_name. ] view_name - select_statement
指定视图的定义。有关详细信息,请查看select_statement。
六、例子
-- Rename only changes the view name.
-- The source and target databases of the view have to be the same.
-- Use qualified or unqualified name for the source and target view.
ALTER VIEW tempdb1.v1 RENAME TO tempdb1.v2;
-- Verify that the new view is created.
DESCRIBE TABLE EXTENDED tempdb1.v2;
+----------------------------+----------+-------+
| col_name|data_type |comment|
+----------------------------+----------+-------+
| c1| int| null|
| c2| string| null|
| | | |
|# Detailed Table Information| | |
| Database| tempdb1| |
| Table| v2| |
+----------------------------+----------+-------+
-- Before ALTER VIEW SET TBLPROPERTIES
DESC TABLE EXTENDED tempdb1.v2;
+----------------------------+----------+-------+
| col_name| data_type|comment|
+----------------------------+----------+-------+
| c1| int| null|
| c2| string| null|
| | | |
|# Detailed Table Information| | |
| Database| tempdb1| |
| Table| v2| |
| Table Properties| [....]| |
+----------------------------+----------+-------+
-- Set properties in TBLPROPERTIES
ALTER VIEW tempdb1.v2 SET TBLPROPERTIES ('created.by.user' = "John", 'created.date' = '01-01-2001' );
-- Use `DESCRIBE TABLE EXTENDED tempdb1.v2` to verify
DESC TABLE EXTENDED tempdb1.v2;
+----------------------------+-----------------------------------------------------+-------+
| col_name| data_type|comment|
+----------------------------+-----------------------------------------------------+-------+
| c1| int| null|
| c2| string| null|
| | | |
|# Detailed Table Information| | |
| Database| tempdb1| |
| Table| v2| |
| Table Properties|[created.by.user=John, created.date=01-01-2001, ....]| |
+----------------------------+-----------------------------------------------------+-------+
-- Remove the key `created.by.user` and `created.date` from `TBLPROPERTIES`
ALTER VIEW tempdb1.v2 UNSET TBLPROPERTIES ('created.by.user', 'created.date');
--Use `DESC TABLE EXTENDED tempdb1.v2` to verify the changes
DESC TABLE EXTENDED tempdb1.v2;
+----------------------------+----------+-------+
| col_name| data_type|comment|
+----------------------------+----------+-------+
| c1| int| null|
| c2| string| null|
| | | |
|# Detailed Table Information| | |
| Database| tempdb1| |
| Table| v2| |
| Table Properties| [....]| |
+----------------------------+----------+-------+
-- Change the view definition
ALTER VIEW tempdb1.v2 AS SELECT * FROM tempdb1.v1;
-- Use `DESC TABLE EXTENDED` to verify
DESC TABLE EXTENDED tempdb1.v2;
+----------------------------+---------------------------+-------+
| col_name| data_type|comment|
+----------------------------+---------------------------+-------+
| c1| int| null|
| c2| string| null|
| | | |
|# Detailed Table Information| | |
| Database| tempdb1| |
| Table| v2| |
| Type| VIEW| |
| View Text| select * from tempdb1.v1| |
| View Original Text| select * from tempdb1.v1| |
+----------------------------+---------------------------+-------+
1500

被折叠的 条评论
为什么被折叠?



