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表中的三列:officeCodephonecity

CREATE VIEW officeInfo
 AS 
   SELECT officeCode, phone, city
   FROM offices;