MySQL-视图DML限制
dml操作(insert、update、delete)
不是所有视图都可以做dml操作。有如下情况的,不能做dml操作:
- select子句中包含distinct
- select子句中包含组函数
- select语句中年包含group by子句
- select语句中包含order by子句
- select语句中包含union、union all等集合运算符
- where子句中包含子查询
- from子句中包含多个表
- 如果视图中有列计算,则不能更新
- 如果基表中有某个具有非空约束的列未出现在视图定义中,则不能做insert操作