zoukankan      html  css  js  c++  java
  • mysql中两表更新时产生的奇葩问题,产生死锁!

    如下一个两表更新语句

    UPDATE hzxm201610 a,xmhzylb1201610 b SET a.gk07_1_6=b.gk04_11,a.gk07_2_6=b.f06_1,a.gk07_3_6=b.f07_1,a.gk07_4_6=b.f08_1  where   substring(a.gk01,1,4) in ('5323') and a.gk01=b.gk01 and dqdm='532300'

    如果漏掉了where会怎么样:

    UPDATE hzxm201610 a,xmhzylb1201610 b SET a.gk07_1_6=b.gk04_11,a.gk07_2_6=b.f06_1,a.gk07_3_6=b.f07_1,a.gk07_4_6=b.f08_1  substring(a.gk01,1,4) in ('5323') and a.gk01=b.gk01 and dqdm='532300'

    一般以为是会报错。其实不然,这个语句正常执行!而且对两个表全扫描,最后什么也不做!但是会锁定两个表很长时间,导致应用系统无法工作!

    查询mysql死锁的语句:

    #Show PROCESSLIST;
    SELECT * FROM information_schema.INNODB_TRX;
    SELECT * FROM information_schema.INNODB_LOCKS;
    SELECT * FROM information_schema.INNODB_LOCK_WAITS;
    SHOW VARIABLES LIKE '%lock%';

  • 相关阅读:
    C代码调用Java代码
    简易的美图秀秀利用别人的so库
    C代码输出日志
    JAVA向C传递数据
    JNI使用常见错误
    JNI的开发步骤
    NDk的目录
    交叉编译
    jquery的一点点认识
    [效率提升]工作中的那些命令行
  • 原文地址:https://www.cnblogs.com/wxb-km/p/5999852.html
Copyright © 2011-2022 走看看