有没有办法通过mysql视图向多个表中插入数据?
UPDATE
、DELETE
或者 INSERT
语句中使用这些视图,以此来更新底层表格的内容。为了让一个视图是可更新的,这个视图的行和底层表格的行必须是一一对应的关系。如果视图中存在某些构造使得它不能被更新,则其不能被更新。WHERE
子句条件的行,你可以给可更新视图加上 WITH CHECK OPTION
子句。该条款在MySQL 5.0.2 中实现。请参阅MySQL参考手册中的这一部分:
有时候,多表视图是可以更新的,前提是它可以使用MERGE算法进行处理。为了使其工作,视图必须使用内连接(而不是外连接或UNION)。此外,视图定义中只能更新一个表,因此SET子句必须仅命名视图中一个表的列。即使理论上可更新,也不允许使用UNION ALL的视图,因为实现会使用临时表来处理它们。
对于多表可更新视图,如果插入到单个表中,则INSERT可以正常工作。不支持DELETE操作。
不支持在视图中使用INSERT DELAYED。