mysql中视图更新详解
技术百科
黄舟
发布时间:2017-03-01
浏览: 次 视图的可更新性与视图中查询的定义是有关的
一、mysql中那些试图使不可更新的?以下类型的视图是不可更新的
1.包含以下关键字的sql语句:聚合函数(sum、min、max、count)、distinct、group by 、having、union或者uinon all
2.常量视图
3.select 中包含子查询
4.join
5.f
rom一个不可更新的试图
6.where字句的子查询引用了from字句中的表
二、更新视图条件限制
WITH[CASCADED | LOCAL] CHECK OPTION确定了更新视图的条件。
LOCAL代表只要满足本视图的条件就可以更新
CASCADED
则必须满足所有针对该视图的所有视图条件才可以更新
如果没有明确是local还是cascade,默认是cascade
为了便于理解还是通过实例来说明
已知t3表的数据结构如下:
-- 创建视图 ldq_t1 CREATE VIEW ldq_t1 AS SELECT * FROM t3 WHERE id1 > 10 WITH CHECK OPTION ; -- 查询ldq_t1中的所有结果 SELECT * FROM ldq_t1; -- 创建视图 ldq_t2 CREATE VIEW ldq_t2 AS SELECT * FROM ldq_t1 WHERE id1 < 30 WITH LOCAL CHECK OPTION ; -- 创建视图 ldq_t3 CREATE VIEW ldq_t3 AS SELECT * FROM ldq_t1 WHERE id1 < 30 WITH CHECK OPTION ; -- 更新视图ldq_t2(只有ldq_t2中存在的数据都可以更新) SELECT * FROM ldq_t2; -- 查看ldq_t2当前记录 UPDATE ldq_t2 SET id1=5 WHERE id2=22; -- 可以执行成功 UPDATE ldq_t2 SET id1=35 WHERE id2=22; -- 将会报错CHECK OPTION failed(因为执行该语句之后,id2=22记录将从ldq_t2消失) UPDATE ldq_t2 SET id1=28 WHERE id2=22; -- 可以执行成功 -- 更新ldq_t3 SELECT * FROM ldq_t3; UPDATE ldq_t3 SET id1=5 WHERE id2=22; -- 将会报错CHECK OPTION failed(因为数据更新之后,必须还要保证其仍然在ldq_t3和ldq_t1之中, 该语句执行后id2=22记录将从ldq_t1消失) UPDATE ldq_t3 SET id1=15 WHERE id2=22; -- 能够执行成功 UPDATE ldq_t3 SET id1=35 WHERE id2=22; -- 将会报错CHECK OPTION failed(因为执行该语句之后,id2=22记录将从ldq_t3消失) DELETE FROM ldq_t3 WHERE id2=22; -- 执行成功
总结:WITH
LOCAL CHECK OPTION 修饰的视图,在更新的时候,只需要保证更新后的记录仍然存在该视图中就可以了,否认报错。而WITH CASCADED CHECK OPTION修饰视图,必须保证更新后的记录仍然存在该视图以及跟该视图有关系的试图中就可以了。
以上就是mysql中视图更新详解的内容,更多相关内容请关注PHP中文网(www.)!
# 相关内容
# 只需要
# 将会
# 如果没有
# 数据结构
# 报错
# mysql
# 才可以
# 中文网
# 保证其
# 中就
相关栏目:
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
AI推广<?muma echo $count; ?>
】
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
SEO优化<?muma echo $count; ?>
】
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
技术百科<?muma echo $count; ?>
】
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
谷歌推广<?muma echo $count; ?>
】
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
百度推广<?muma echo $count; ?>
】
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
网络营销<?muma echo $count; ?>
】
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
案例网站<?muma echo $count; ?>
】
<?muma
$count = M('archives')->where(['typeid'=>$field['id']])->count();
?>
【
精选文章<?muma echo $count; ?>
】
相关推荐
- Windows蓝屏错误0x00000018怎么处理
- php本地部署后数据库连接报错_1045acces
- Win11声音太小怎么办_Windows 11开启
- MAC怎么使用表情符号面板_MAC Emoji快捷
- Win11怎么设置默认浏览器Chrome_Wind
- php修改数据怎么改富文本_update更新htm
- Go语言中CookieJar的持久化机制解析:内存
- Win11怎么卸载Photos应用_Win11卸载
- 如何理解Go指针和内存分配关系_Go Pointe
- Windows音频驱动无声音原因解析_声卡驱动错误
- 如何在Golang中解压文件_Golang com
- php做exe支持多线程吗_并发处理实现方式【详解
- Win10路由器怎么隐藏ssid Win10隐藏w
- 如何用正则与预处理结合精准拦截拼接式垃圾域名
- 如何使用Golang实现Web表单数据绑定_自动映
- 如何在 Windows 11 中使用 AlomWa
- PHP主流架构怎么集成Redis缓存_配置步骤【方
- c++ std::atomic如何保证原子性 c+
- Win11怎么关闭任务栏小组件_Windows11
- c++20的std::format怎么用 比pri
- PHP 中 require() 语句返回值的用法详
- Win11怎么设置鼠标宏_Win11鼠标按键自定义
- Django 密码修改后会话失效的解决方案
- Win11关机快捷键是什么_Win11快速关机方法
- 如何在Golang中编写端到端测试_Golang
- 短链接怎么用php递归还原_多层加密链接的处理法【
- Python函数参数高级用法_默认值与可变参数解析
- php打包exe怎么传递参数_命令行参数接收方法【
- Win11怎么设置ipv4地址_Windows 1
- c++获取当前时间戳_c++ time函数使用详解
- Windows10如何更改鼠标灵敏度_Win10鼠
- MySQL 中使用 IF 和 CASE 实现查询字
- Win11怎么连接蓝牙耳机_Win11蓝牙设备配对
- MAC怎么截图并快速编辑_MAC自带截图快捷键与标
- PyTorch DDP 多进程训练在 Kaggle
- c++怎么实现大文件的分块读写_c++ 文件指针s
- Win11声音忽大忽小怎么办 Win11音频增强功
- Windows驱动无法加载错误解决方法_驱动签名验
- Windows10电脑怎么设置虚拟内存_Win10
- 当网站SEO排名下降时,如何应对?
- MAC的“接续互通”功能无法使用怎么办_MAC检查
- Win11怎么关闭搜索历史_Win11清除任务栏搜
- Python 模块的 __name__ 属性如何由
- Win10如何更改任务栏高度_Windows10解
- Windows10无法识别USB设备描述符请求失败
- PHP主流架构怎么处理表单验证_规则与自定义【技巧
- Win11怎么更改任务栏位置_修改注册表将Win1
- Python邮件系统自动化教程_批量发送解析与模板
- Win10如何关闭安全中心所有通知 Win10禁用
- PythonGIL机制理解_多线程限制解析【教程】

QQ客服