结合2张表的view 无法update
如果想让view 可以更新,建view 语句需要满足以下条件
没有 表结合
没有 集合演算 如 UNION ALL / INTERSECT / MINUS
没有 GROUP BY
没有 集合函数
没有 DISTINCT
多表view,更新有限制,这是mysql手册上的 内容:
在某些情况下,能够更新多表视图,假定它能使用MERGE算法进行处理。为此,视图必须使用内部联合(而不是外部联合或UNION)。此外,仅能更新视图定义中的单个表,因此,SET子句必须仅命名视图中某一表的列。即使从理论上讲也是可更新的,不允许使用UNION ALL的视图,这是因为,在实施中将使用临时表来处理它们。
因为你的视图跨了多个表,所以不能更新了,试想一下,如果你能在这个视图上插入一条记录保存后,数据库如何知道记录实际上要被存进那个实体表中,因为视图本身并不是一个存储体。
所以只好在触发器中写两条update语句分别更新两个表了。