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. Android从启动到程序运行整个过程的整理

    1Android是基于Linux的一个操作系统,它可以分为五层,下面是它的层次架构图,可以记一下,因为后面应该会总结到SystemServer这些Application Framework层的东西 A ...

  2. Python --判断路径是否为目录或文件

    os.path.isdir( ), os.path.isfile(),os.listdir( ), os.walk( ) 参考网址:https://blog.csdn.net/xxn_723911/a ...

  3. C++之标准库map

    目录 1.成员函数 2.元素访问 3.迭代器Iterators(C++ 11) 4.容量Capacity 5.修改函数(C++ 11和C++ 17) 6.查找表Lookup 7.观察Observers ...

  4. 项目部署Vue+Django(luffy)

    部署路飞学城 部署整体框架图: 1 熟悉linux操作 2 上传路飞学城项目到linux服务器 xftp上传到服务器 lrzsz工具 3 完成python3解释器的安装 在linux命令行模式下, 输 ...

  5. 关于生物项目上的blast和viroblast

    最近要做一个跟生物有关的项目,隔行如隔山呀,好多工具以前都没听过,blast分到我头上啦,查查,查查 BLAST (Basic Local Alignment Search Tool)是一套在蛋白质数 ...

  6. Vue 知识整理—01-基础

    一:Vue是什么? Vue是一个JS框架. Vue.js是一套构建用户界面的渐进式框架. 库和框架的区别: ☞库:提供一些 API 工具函数,体现了封装的思想,需要我们主动调用: ☞框架:提供一套完整 ...

  7. UIPath Level 1

    近日搬砖养家糊口,忙于项目,博客更新一度中断,自己都觉得委屈了. 培训视频看的眼睛耳朵疼,做完最后一个终极考试,哪儿哪儿都觉得不舒服~ 先来个截图,醒醒脑~ 今儿就歇下了~

  8. npm run build 打包后,如何运行在本地查看效果(Nginx服务)

    这段时间,研究了一下vue 打包的很慢的问题.但是当我 npm run build 打包后,在本地查看效果的时候,活生生被我老大鄙视了,因为我打开了XAMPP.他说:你怎么不用Nginx啊?用这个一堆 ...

  9. Linux下手动编译shogun

    手动编译shogun,如果按照直接按照官网上的步骤进行,会踩非常多的坑,下面分享一下在下的编译过程,希望能为阁下提供些许借鉴. 1. git clone https://github.com/shog ...

  10. spoj mpoint

    题解: 判断每一次加进来的时候有几个被破坏,几个添加 然后单调栈维护 代码: #include<bits/stdc++.h> using namespace std; ; ,now,oo= ...