MySQL学习入门教程:通过视图创建可更新视图并更新基础表中的数据
如何通过视图创建可更新视图并更新基础表中的数据。
MySQL可更新视图简介
在MySQL中,视图不仅是可查询的,而且是可更新的。这意味着您可以使用INSERT或UPDATE语句通过可更新视图插入或更新基表的行。 另外,您可以使用DELETE语句通过视图删除底层表的行。
但是,要创建可更新视图,定义视图的SELECT语句不能包含以下任何元素:
- 聚合函数,如:MIN,MAX,SUM,AVG,COUNT等。
- DISTINCT子句
- GROUP BY子句
- HAVING子句
- UNION或
UNION ALL
子句 - 左连接或外连接。
- SELECT子句中的子查询或引用该表的WHERE子句中的子查询出现在
FROM
子句中。 - 引用
FROM
子句中的不可更新视图 - 仅引用文字值
- 对基表的任何列的多次引用
如果使用TEMPTABLE算法创建视图,则无法更新视图。
请注意,有时可以使用内部连接创建基于多个表的可更新视图。
MySQL可更新视图示例
让我们先来看看如何创建一个可更新的视图。
首先,基于示例数据库(yiibaidb)中的offices
表创建一个名为officeInfo
的视图。该视图指的是offices
表中的三列:officeCode
,phone
和 city
。
CREATE VIEW officeInfo
AS
SELECT officeCode, phone, city
FROM offices;