当要使用本表的数据更新本表时,容易出错:

如下:

update b 
set aaa=select max(MAX_def_60M) as max from b

[Err] 1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'select max(MAX_def_60M) as max from b' at line 2

解决办法:再嵌套一层查询

update b
set aaa=
(select max
from
(select max(MAX_def_60M) as max from b) as temp
)

不能同时读写的原因:mysql读写锁锁定的问题

若事务T对数据对象A加上S锁,则事务T可以读A但不能修改A,其他事务只能再对A加S锁,而不能加X锁,直到T释放A上的S锁。这保证了其他事务可以读A,但在T释放A上的S锁之前不能对A做任何修改。

写锁:

若事务T对数据对象A加上X锁,事务T可以读A也可以修改A,其他事务不能再对A加任何锁,直到T释放A上的锁。这保证了其他事务在T释放A上的锁之前不能再读取和修改A。

加了共享锁的对象,可以继续加共享锁,不能再加排它锁。加了排它锁后,不能再加任何锁。

那么说我在更新一个表的时候,我锁定了一行,这一行我是不能加读锁的了,所以这时我查询这张表,就会出现这种问题。

加一层子查询之后成功的原因(待补充):

mysql在from子句中遇到子查询时,先执行子查询并将结果放到一个临时表中,我们通常称它为“派生表”;临时表是没有索引、无法加锁的。

sql 同时(更新)update和(查询)select同一张表相关推荐

  1. 几种更新(Update语句)查询的方法

    正 文: 数据库更新就一种方法Update, 其标准格式:Update 表名 set 字段=值 where 条件 不过根据数据的来源不同,还是有所区别的:   1.从外部输入 这种比较简单 例:upd ...

  2. 笔记:3.4 《数据库系统概论》之数据查询---SELECT(单表查询、连接查询、嵌套查询、集合查询、多表查询)

    对 3.2 数据查询-SELECT(单表查询.连接查询.嵌套查询.集合查询.多表查询)的转载与学习笔记: 0.前言 本篇文章是对<数据库系统概论>王珊老师主编的数据库查询SELECT部分做 ...

  3. mysql教程详解之多表联合查询,MYSQL教程mysql多表联合查询返回一张表的内容实现代码...

    搜索热词 <MysqL教程MysqL多表联合查询返回一张表的内容实现代码>要点: 本文介绍了MysqL教程MysqL多表联合查询返回一张表的内容实现代码,希望对您有用.如果有疑问,可以联系 ...

  4. mysql 不在另一张表_mysql查询在一张表不在另外一张表的记录

    mysql查询在一张表不在另外一张表的记录 问题: 查询一个表(tb1)的字段记录不在另一个表(tb2)中 条件:tb1的字段key的值不在tbl2表中 ---------------------- ...

  5. sql批量更新update嵌套select更新

    概述 有两张表[user]和[city],user表的 city_uuid.city_no 和 city 表的 city_uuid.city_no 一一对应,但是 user 表只有 city_uuid ...

  6. 3.4 《数据库系统概论》之数据查询---SELECT(单表查询、连接查询、嵌套查询、集合查询、多表查询)

    文章目录 0.前言 1.思维导图 2.Student/SC/Course表数据及结构 3.SELECT语句的一般格式 4.单表查询 (1)选择表中的若干列 ① 查询指定列 ② 查询全部列 ③ 查询经过 ...

  7. mysql中3张表如何关联查询_mysql三张表关联查询

    三张表,需要得到的数据是标红色部分的.sql如下: select a.uid,a.uname,a.upsw,a.urealname,a.utel,a.uremark, b.rid,b.rname,b. ...

  8. php sql 去除重复数据,MSSQL_快速删除重复记录,SQL Server如何实现?,如果一张表的数据达到上百万 - phpStudy...

    如果一张表的数据达到上百万条,用游标的方法来删除简直是个噩梦,因为它会执行相当长的一段时间-- 开发人员的噩梦--删除重复记录 想必每一位开发人员都有过类似的经历,在对数据库进行查询或统计的时候不时地 ...

  9. oracle三张表关联外查询,oracle三张表左连接 | 学步园

    三张表,要查询出结果是:第一张表全显示,其余两张表显示对应连接的信息 三张表分别是 SQL> select * from zr_stu; STUID STUNAME STUSEX ------- ...

最新文章

  1. 深入剖析iLBC的丢包补偿技术(PLC)
  2. Linux用户、群组管理
  3. MySQL自定义变量的使用
  4. [UWP]本地化入门
  5. vs如何写多线程_java中的多线程的示例
  6. 无语!Docker桌面不再对企业用户免费
  7. Java对象内存布局
  8. java 截取两个字符之间的字符串_java里面如何截取两个关键字中间的字符串?
  9. python函数 - 函数创建、属性、参数及偏函数
  10. LUOGU P4281 [AHOI2008]紧急集合 / 聚会 (lca)
  11. 数据结构与算法笔记——用Go语言描述
  12. 作死!研究生用实验室里的烧杯冲咖啡,喝完就进了医院抢救
  13. Activiti工作流表之间的关系
  14. dipg(dip歌词翻译中文)
  15. android root后手机文件管理器,手机root后用什么文件管理器
  16. 【绘画素材】日系插画“人物表情”素材参考!告别脸部僵硬~
  17. 拼小圈营销群_拼多多拼小圈引流卖货全攻略
  18. 程序设计基础课程设计——学生成绩管理程序
  19. Leslie--Chueng项目服务端、小程序的本地部署操作教程
  20. 分贝通携手衡石科技,用心护好客户「钱袋子」 增收节流数百万

热门文章

  1. axis=0 与 axis=1 的区分
  2. School assignment
  3. Flutter 网络请求框架dio使用详解
  4. Mysql系列之六(视图,事务,触发器等)
  5. node.js爬虫-校园网模拟登录
  6. 魔法java_力量与魔法java
  7. 了解“新基建”、读罢IDC报告后,还请查收来自浪潮的硬核实力!
  8. 利用百度API进行视频翻译制作
  9. 【陈工笔记】# LaTeX中,单元格数据居中方式 #
  10. 黑马程序员——常用类