Error: ER_LOCK_WAIT_TIMEOUT: Lock wait timeout exceeded; try restarting transaction 锁等待超时。是当前事务在等待其它事务释放锁资源造成的。

遇到场景:

transaction没有commit或者释放,造成的锁表,不能在进行更新操作

解决方法:执行 select mysql_thread_id from information_schema.innodb_trx 找到线程号,执行KILL命令 :KILL 线程id

1.查看删除数据库表的唯一约束

SHOW INDEX FROM tbl_name (唯一约束也是索引)
ALTER TABLE tbl_name DROP INDEX index_name

  

 
2.update where中不能使用子查询,解决方案如下:

将子查询作为一张表放在前面

UPDATE `areainfo` a,  (
SELECT code FROM `areainfo` where level = 1
) b SET a.`level` =2 WHERE a.`parent_code` = b.code UPDATE `areainfo` a, (
SELECT code, name FROM `areainfo` where level = 1
) b SET a.`fullName` =concat(b.name,',',a.name) WHERE a.`parentCode` = b.code and a.level = 2 UPDATE `areainfo` a, (
SELECT code, name,parentCode FROM `areainfo` where level = 2
) b , (
SELECT code, name FROM `areainfo` where level = 1
) c SET a.`fullName` =concat(c.name,',',b.name,',',a.name) WHERE a.`parentCode` = b.code and b.`parentCode` = c.code and a.level = 3

  

3.批量更新遇到唯一约束的字段,比如index字段批量减1,这个石斛需要加上order by来说明更新顺序,如果不按顺序会提示重复错误。

4.一张表更新另一张表

 UPDATE  `companyBasicComponentBom` t1,   `BomTemple` t2 set t1.wastageRate = t2.wastageRate  
WHERE t1.`bComponentId` = t2.`bComponentId` AND t1.`bParentId` = t2.`bParentId`
5. 正则匹配字符串,字符串的拼接
 
INSERT INTO `companySalesProduct`( `companyId`, `customerId`, `customerMolds`, `componentId`, `unitPrice`, `currencyId`, `referProfitMargin`, `customerProductName`, `extendDesc`, `stateId`, `userId`)
 
SELECT 16, 62, concat((right(substring_index(aliasName, '-', 1), 8)), '-', left(substring_index(aliasName, '-', -1), 2)) , id, 0, 1, 0, '', '', 1, 1788   FROM `companyBasicComponent` where companyId = 16 and aliasName REGEXP '[0-9]{8}-[0-9]{2}'  and aliasName not like '%停用%' 

mysql数据库操作记录持续更新...的更多相关文章

  1. 【mysql】 操作 收集持续更新

    一个字段可能对应多条数据,用mysql实现将多行数据合并成一行数据 GROUP_CONCAT(Name SEPARATOR ',') 需注意: 1.GROUP_CONCAT()中的值为你要合并的数据的 ...

  2. oracle 常用操作记录--持续更新...

    一.oracle grant 授权语句(转自:https://www.cnblogs.com/yt954437595/p/6488819.html) --select * from dba_users ...

  3. [MySQL数据库之记录的详细操作:增、改、删、单表查询、多表查询]

    [MySQL数据库之记录的详细操作:增.改.删.单表查询.多表查询] 记录详细操作 增.删.改 增: insert t1(字段1,字段2,字段3) values (值1,值2,值3), (值1,值2, ...

  4. php MySQL数据库操作类源代码

    php MySQL数据库操作类源代码: <?php class MySQL{ private $host; //服务器地址 private $name; //登录账号 private $pwd; ...

  5. MySQL数据库操作常用命令

    MySQL数据库操作常用命令DOS连接数据库1.安装MySQL配置好环境2.运行cmd命令net start mysql3.找到mysql文件根目录输入命令mysql -h localhost -u ...

  6. Java通过JDBC 进行MySQL数据库操作

    转自: http://blog.csdn.net/tobetheender/article/details/52772157 Java通过JDBC 进行MySQL数据库操作 原创 2016年10月10 ...

  7. php : mysql数据库操作类演示

    设计目标: 1,该类一实例化,就可以自动连接上mysql数据库: 2,该类可以单独去设定要使用的连接编码(set names XXX) 3,该类可以单独去设定要使用的数据库(use XXX): 4,可 ...

  8. Python进行MySQL数据库操作

    最近开始玩Python,慢慢开始喜欢上它了,以前都是用shell来实现一些自动化或者监控的操作,现在用Python来实现,感觉更棒,Python是一门很强大的面向对象语言,所以作为一个运维DBA或者运 ...

  9. (转载)常用的Mysql数据库操作语句大全

    打开CMD,进入数据库命令:mysql -hlocalhost -uroot -p 退出数据库:exit 用户管理: 1.新建用户: >CREATE USER name IDENTIFIED B ...

随机推荐

  1. CORS在Spring中的实现

    CORS: 通常情况下浏览器禁止AJAX从外部获取资源,因此就衍生了CORS这一标准体系,来实现跨域请求. CORS是一个W3C标准,全称是"跨域资源共享"(Cross-origi ...

  2. 2 Class类

     在程序运行期间,Java运行时系统始终为所有的对象维护一个被称为运行时地类型标识.这个信息跟踪着每个对象所属地类.虚拟机 利用运行时类型信息选择相应地方法执行. 然而,可以通过专门地Java类访问这 ...

  3. js判重

    1.两个数组,取出不重复的部分 var arr=[1,2,3]; var arr1=[1,2]; vat tmp=[]; for(let i in arr1){ if(!(arr.includes(a ...

  4. 移动端最强适配(rem适配之px2rem)&& 移动端结合Vuex实现简单loading加载效果

    一.rem之px2rem适配 前言:相信许多小伙伴上手移动端时面对各式各样的适配方案,挑选出一个自己觉得简便.实用.高效的适配方案是件很纠结的事情. 深有体会... 经过多个移动端项目从最初的 vie ...

  5. list map to map

    Map<String, Object> merged = lists.stream() .map(Map::entrySet) .flatMap(Set::stream) .collect ...

  6. 开发部署项目时出现:java.lang.OutOfMemoryError: PermGen space

    java.lang.OutOfMemoryError: PermGen space 错误: 原文地址:http://www.cnblogs.com/shihujiang/archive/2012/06 ...

  7. Html5 <video>实现摄像头监控问题:html5并不支持rtsp协议,所以使用vlc进行转码,将rtsp转http流,这样<video>才可以直接播放

    今天在写html5中播放旷视C2摄像头视频监控的功能,查了很多资料,才发现Html5 <video>并不支持rtsp协议.后来查到使用第三方转码才得以实现. 这里把方法写下来分享给大家. ...

  8. Loadrunner录制https脚本

        随着公司的发展,公司原有的SVN服务器存放的内容不断增加,容量已经不能满足后续需求,首先我们想到对服务器进行扩容,然而因为各种原因服务器不能进行扩容,所以公司决定更换新的SVN服务器,在做数据 ...

  9. CICD自动化发版系统设计简介

    第一篇. 版本迭代是每一个互联网公司必须经历的,尤其是中小型公司,相信不少人踩到过很多坑.接下来的一系列文章将介绍我设计的自动化发版系统! 很多公司没有把配置独立出去,代码的构建.发版通过一个Jenk ...

  10. 20190219备份 java spring boot 学习链接(日/英)

    Building web applications with Spring Boot and Kotlin https://www.slideshare.net/masuda220/spring-82 ...