首页 > 数据库 >MySQL之视图检查选项

MySQL之视图检查选项

时间:2023-07-22 12:55:22浏览次数:38  
标签:选项 into Tom 视图 stu MySQL id

MySQL之视图检查选项

视图的检查选项

当使用WITH CHECK OPTION子句创建视图时,MySQL会通过视图检查正在更改的每个行,例如 插入,更新,删除,以使其符合视图的定义。MySQL允许基于另一个视图创建视图,它还会检查依赖视图中的规则以保持一致性。为了确定检查的范围,mysql提供了两个选项:CASCADED和 LOCAL,默认值为 CASCADED CASCADED :

cascade

 create or replace view stu_v_1 as select id , name from student where id <= 20 ;
 select * from   stu_v_1;
 insert into stu_v_1 values(6,'Tom');
 insert into stu_v_1 values(30 , 'Tom');
 #插入成功,虽然限定条件为id<=20,但是没有检查选项。
 create or replace view stu_v_2 as select id , name from stu_v_1 where id >= 10 with cascaded check option;
 insert into stu_v_1 values(6,'Tom'); 
 #插入不成功,因为不满足stu_v_2的条件 id>=10
 insert into stu_v_1 values(30 , 'Tom'); 
 #插入成功,满足stu_v_2的条件 id>=10 , 虽然stu_v_1有条件,但是没加检查选项,不用管

local

 create or replace view stu_v_4 as select id,name from student where id <= 15;
 insert into stu_v_4 values(5,'Tom');
 insert into stu_v_4 values(16,'Tom');
 #虽然不满足条件,但是4图没加检查选项,可以插入成功。
 ​
 create or replace view stu_v_5 as select id,name from stu_v_4 where id >= 10 with local check option ;
 insert into stu_v_5 values(13,'Tom');
 insert into stu_v_5 values(17,'Tom');
 #满足当前该图的条件,虽然该图依赖4图,但是4图没加检查选项,不用管,可以插入成功。
 ​
 create or replace view stu_v_6 as select id,name from stu_v_5 where id < 20 ;
 insert into stu_v_6 values(14,'Tom');
 #满足6图依赖的5图的条件,可以插入成功
 

标签:选项,into,Tom,视图,stu,MySQL,id
From: https://www.cnblogs.com/liandaozhanshi/p/17573197.html

相关文章

  • file /usr/share/mysql/charsets/macroman.xml from install of MySQL-server-5.6
    MySQL服务器和字符集在使用MySQL数据库时,字符集是一个非常重要的概念。它决定了数据库中存储的数据如何表示和解释。MySQL支持多种字符集,每个字符集都有自己的编码方式和规则。在安装MySQL服务器时,我们可能会遇到如下错误提示信息:file/usr/share/mysql/charsets/macroma......
  • MySQL之视图CRUD
    MySQL之视图CRUD介绍视图(View)是一种虚拟存在的表。视图中的数据并不在数据库中实际存在,行和列数据来自定义视图的查询中使用的表,并且是在使用视图时动态生成的。通俗的讲,视图只保存了查询的SQL逻辑,不保存查询结果。所以我们在创建视图的时候,主要的工作就落在创建这条SOL查询......
  • Mysql 幻读
    总结下:简单的事务操作,例如快照读,通过系统提供的mvcc机制——创建版本号、删除版本号,避免幻读。而复杂的事务操作,例如当前度,则需要通过加锁进行控制。参考一:幻读的基本概念什么是幻读事务不是独立执行造成的一种现象。一个事务对数据表进行了全面的修改,而后另一个事务增加了一......
  • 安装 MySQL ZIP 版本
    安装MySQL的ZIP版本相对于安装包版本稍微复杂一些,因为它需要手动解压和配置。以下是在Windows上安装MySQLZIP版本的步骤:下载MySQLZIP文件:前往MySQL官方网站(https://dev.mysql.com/downloads/mysql/)下载适合您Windows版本的MySQLZIP文件。选择与您系统......
  • java mysql连接串设置超时时间
    JavaMysql连接串设置超时时间在开发Java应用程序时,我们经常需要与数据库进行交互。而MySQL是一个常用的关系型数据库,因此在Java中连接MySQL数据库是一项常见的任务。在连接MySQL数据库时,有时候我们需要设置超时时间。超时时间是指在数据库连接过程中,如果连接的时间超过了指定的......
  • linux cpp g++ mysqlconnector
    1.installmysqlinubuntu;2installmysqlconnector;sudoaptinstalllibmysqlclient-dev3.completecode#include<algorithm>#include<chrono>#include<cstdio>#include<cstdint>#include<cstdlib>#include<ctime>......
  • MySQL(视图、事务、存储过程、函数、流程控制、索引)
    一视图(了解)什么是视图视图就是通过查询得到一张虚拟表,然后保存下来,下次可以直接使用为什么要用视图如果要频繁的操作一张虚拟表(拼表组成的),你就可以制作成视图,后续直接操作视图其实也是一张表如何操作#固定语法createview#具体操作createviewteacher2......
  • MySQL优化之group by
    MySQL之groupbygroupby优化 #删除掉目前的联合索引idx_user_pro_age_sta dropindexidx_user_ro_age_staontb_user; #执行分组操作,根据profession字段分组 explainselectprofession,count(*)fromtb_usergroupbyprofession; #创建索引 Createindexid......
  • MySQL之order by优化
    MySQL之orderby优化.Usingfilesort:通过表的索引或全表扫描,读取满足条件的数据行,然后在排序缓冲区sortbuffer中完成排序操作,所有不是通过索引直接返回排序结果的排序都叫FileSot排序。Usingindex:通过有序索引顺序扫描直接返回有序数据,这种情况即为usingindex,不需要......
  • 011 学习笔记--视图 + 存储过程
    视图:视图:是一种虚拟的表。视图中的数据在数据库中并不实际存在,行和列的数据来自自定义视图中查询使用的表,并且是在使用视图时动态生成的。创建视图:createorreplaceviewviewnameas select语句[with[cascaded|local|checkoption]]例如:createorREPLACEviewView_Ge......