首页 > 编程笔记 > MySQL笔记 阅读:6

MySQL修改视图的2种方法(附带实例)

修改视图是指修改 MySQL 数据库中存在的视图,当基本表的某些字段发生变化的时候,可以通过修改视图来保持与基本表的一致性。

MySQL 中通过 CREATE OR REPLACE VIEW 语句和 ALTER 语句来修改视图。

用CREATE OR REPLACE VIEW语句修改视图

在 MySQL 中修改视图,可使用 CREATE OR REPLACE VIEW 语句,语法如下:
CREATE [OR REPLACE] [ALGORITHM = {UNDEFINED | MERGE | TEMPTABLE}]
VIEW view_name [(column_list)]
AS SELECT_statement
[WITH [CASCADED | LOCAL] CHECK OPTION]
修改视图的语句和创建视图的语句是完全一样的。当视图已经存在时,修改语句对视图进行修改;当视图不存在时,创建视图。下面通过一个实例来说明。

【实例】修改视图 view_t,代码如下:
CREATE OR REPLACE VIEW view_t AS SELECT * FROM tv;
首先通过 DESC 查看一下修改之前的视图,以便与修改之后的视图进行对比。执行的结果如下:
mysql> DESC view_t;
+-----------------+-----------+------+-----+---------+-------+
| Field           | Type      | Null | Key | Default | Extra |
+-----------------+-----------+------+-----+---------+-------+
| quantity        | int       | YES  |     | NULL    |       |
| price           | int       | YES  |     | NULL    |       |
| quantity *price | bigint(21)| YES  |     | NULL    |       |
+-----------------+------------+-----+-----+---------+-------+
mysql> CREATE OR REPLACE VIEW view_t AS SELECT * FROM tv;
mysql> DESC view_t;
+----------+---------+------+-----+---------+-------+
| Field    | Type    | Null | Key | Default | Extra |
+----------+---------+------+-----+---------+-------+
| quantity | int     | YES  |     | NULL    |       |
| price    | int     | YES  |     | NULL    |       |
+----------+---------+------+-----+---------+-------+
从执行的结果来看,相比原来的视图 view_t,新的视图 view_t 少了 1 个字段。

用ALTER语句修改视图

ALTER 语句是 MySQL 提供的另外一种修改视图的方法,语法如下:
ALTER [ALGORITHM = {UNDEFINED | MERGE | TEMPTABLE}]
VIEW view_name [(column_list)]
AS SELECT_statement
[WITH [CASCADED | LOCAL] CHECK OPTION]
这个语法中的关键字和前面视图的关键字是一样的,这里就不再详细介绍了。

【实例】使用 ALTER 语句修改视图 view_t,代码如下:
ALTER VIEW view_t AS SELECT quantity FROM tv;
执行结果如下:
mysql> DESC view_t;
+----------+---------+------+-----+---------+-------+
| Field    | Type    | Null | Key | Default | Extra |
+----------+---------+------+-----+---------+-------+
| quantity | int     | YES  |     | NULL    |       |
| price    | int     | YES  |     | NULL    |       |
+----------+---------+------+-----+---------+-------+
mysql> ALTER VIEW view_t AS SELECT quantity FROM tv;
mysql> DESC view_t;
+----------+---------+------+-----+---------+-------+
| Field    | Type    | Null | Key | Default | Extra |
+----------+---------+------+-----+---------+-------+
| quantity | int     | YES  |     | NULL    |       |
+----------+---------+------+-----+---------+-------+
通过 ALTER 语句同样可以达到修改视图 view_t 的目的,从上面的执行过程来看,视图 view_t 只剩下一个 quantity 字段,修改成功。

相关文章