通过SQL视图向多个表插入数据

6
有没有办法通过mysql视图向多个表中插入数据?
2个回答

3
MySQL参考手册中对可更新视图的定义如下:
有些视图是可更新的,也就是说你可以在 UPDATEDELETE 或者 INSERT 语句中使用这些视图,以此来更新底层表格的内容。为了让一个视图是可更新的,这个视图的行和底层表格的行必须是一一对应的关系。如果视图中存在某些构造使得它不能被更新,则其不能被更新。
为了防止插入或更新那些不符合 WHERE 子句条件的行,你可以给可更新视图加上 WITH CHECK OPTION 子句。该条款在MySQL 5.0.2 中实现。
你可以在这里找到这篇文章的完整版。

1

请参阅MySQL参考手册中的这一部分

有时候,多表视图是可以更新的,前提是它可以使用MERGE算法进行处理。为了使其工作,视图必须使用内连接(而不是外连接或UNION)。此外,视图定义中只能更新一个表,因此SET子句必须仅命名视图中一个表的列。即使理论上可更新,也不允许使用UNION ALL的视图,因为实现会使用临时表来处理它们。

对于多表可更新视图,如果插入到单个表中,则INSERT可以正常工作。不支持DELETE操作。

不支持在视图中使用INSERT DELAYED。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接