【视图更新】
更新视图是通过 INSERT
、UPDATE
、DELETE
来对视图进行操作,由于视图是不实际存储数据的虚表,因此对视图的更新最终要转换为对基本表的更新
像查询视图那样,对视图的更新也是通过视图消解,转换为对基本表的更新
为防止用户通过视图进行更新时,有意无意地对不属于视图范围内的基本表数据进行操作,可以在定义视图时加上 WITH CHECK OPTION
子句,使得在更新数据时,RDBMS 自动检查视图定义中的条件,当不满足时拒绝执行更新操作,关于视图的定义,详见 SQL 视图的数据定义
【实例】
1.插入例如,向 CS 系学生视图 cs_student 中插入一个新的学生记录(学号:5,姓名:钱七,年龄:20)
1 | INSERT |
该语句会转为对基本表的更新
1 | INSERT |
例如,将 CS 系学生视图 cs_student 中学号为 5 的学生姓名改为周八
1 | UPDATE cs_student |
该语句会转为对基本表的更新
1 | UPDATE student |
例如,删除 CS 系学生视图 cs_student 中学号为 5 的记录
1 | DELETE |
该语句会转为对基本表的更新
1 | DELETE |