在MySQL数据库中,视图(view)是一个命名的虚表,与持久表不同,视图中的数据没有实际的物理存储。
举例:
视图是基于基表的一个虚拟表,所以先创建一张基表:
创建该基表的一个视图:
创建了一个id<10的视图。
然后,我们试着向视图插入id=10,id=20两条数据:
由于这两条数据并不满足id<10,因此v_t为空,但插入时并不会报错。
加上 with check option 选项:
这时候当我们插入id=40的数据时,MYSQL数据库会对更新视图插入的数据进行检查,对不满足视图定义的会抛出异常,不允许视图更新。