相关的文档10bet官方网站 本手册下载
PDF (Ltr)- 36.3 mb
PDF (A4)- 36.3 mb
手册页(TGZ)- 236.9 kb
手册页(邮政编码)- 348.5 kb
信息(Gzip)- 3.4 mb
信息(邮政编码)- 3.4 mb
本手册摘录

MySQL 5.7参考手册// 视图与检查选项条款

23.5.4视图与检查选项条款

检查选项条款可以给出一个可更新视图的防止插入行在哪里条款的select_statement是不正确的。它还可以防止更新的行在哪里条款是正确的但更新会导致它是不真实的(换句话说,它可以防止可见的行被更新掉看不到行)。

在一个检查选项条款的可更新视图,当地的级联关键字视图时确定检查测试的范围定义在另一个视图。当两字,默认级联

在MySQL 5.7.6之前,检查选项测试工作是这样的:

  • 当地的,视图在哪里检查条款检查,但是没有根本的观点。

  • 级联,视图在哪里条款检查,然后检查基本观点进行递归时,补充道与级联检查选项(为目的的检查;他们的定义保持不变),适用相同的规则。

  • 没有检查选项,视图在哪里条款不检查,不检查潜在的观点。

MySQL 5.7.6,检查选项测试标准兼容(改变了先前的语义当地的并没有检查条款):

  • 当地的,视图在哪里条款检查,然后检查递归根本观点和适用相同的规则。

  • 级联,视图在哪里条款检查,然后检查基本观点进行递归时,补充道与级联检查选项(为目的的检查;他们的定义保持不变),适用相同的规则。

  • 没有检查选项,视图在哪里条款不检查,然后检查潜在的观点进行递归时,适用相同的规则。

考虑下面的表和视图的定义:

创建表t1 (INT);创建视图v1 SELECT * FROM t1, < 2检查选项;创建视图v2作为> SELECT *从v1 0与当地检查选项;创建视图v3 SELECT *从v1与级联检查选项> 0;

在这里,v2v3视图中定义另一个视图,v1。在MySQL 5.7.6之前,因为v2有一个当地的检查选项,插入测试只针对v2检查。v3有一个级联检查选项,所以插入测试不仅反对v3检查,但对那些潜在的观点。下面的语句说明这些差异:

mysql >插入v2值(2);查询好了,1行影响(0.00秒)mysql >插入v3值(2);错误1369 (HY000):检查选项失败“test.v3”

MySQL 5.7.6,语义当地的不同于先前:插入v2检查对其当地的检查选项,然后(不像5.7.6之前),检查是递归v1并再次实施这些规则。的规则v1检查故障原因。的检查v3不能像以前一样:

mysql >插入v2值(2);错误1369 (HY000):检查选项失败的考试。v2的mysql >插入v3值(2);错误1369 (HY000):检查选项失败“test.v3”