MySQL修改视图的2种方法(附带实例)
修改视图是指修改 MySQL 数据库中存在的视图,当基本表的某些字段发生变化的时候,可以通过修改视图来保持与基本表的一致性。
MySQL 中通过 CREATE OR REPLACE VIEW 语句和 ALTER 语句来修改视图。
【实例】修改视图 view_t,代码如下:
【实例】使用 ALTER 语句修改视图 view_t,代码如下:
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 字段,修改成功。