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. XFS文件系统的备份和恢复

    1.工具 XFS文件系统提供了xfsdump和xfsrestore来协助备份.恢复XFS文件系统中的数据,xfsdump按inode顺序来备份XFS文件系统,备份时不需要卸载文件系统,备份和恢复的过程 ...

  2. STRANS一:简单的XML转换

    心情不好,泥总把表妹微信给冰冰了,心塞... 1.简单的单层结构: <?sap.transform simple?> <tt:transform xmlns:tt="htt ...

  3. Python----unittest discover()方法与执行顺序

    一.Unittest discover()可以根据不同的功能创建不同的测试文件,甚至是不同的测试目录,测试文件中还可以将不同的小功能划分为不同的测试类,在类下编写测试用例,让整体结构更加清晰一般是通过 ...

  4. c# winform Chart Pie 中若X轴数据为字符串时,#VALX取值为0

    https://q.cnblogs.com/q/83848/ 在winform程序中用自带的Chart进行画图表时,若画饼图,其中X轴数据为字符串,这时候如果想设置Label值的格式为#VALX:#V ...

  5. python运用turtle 画出汉诺塔搬运过程

    python运用turtle 画出汉诺塔搬运过程 1.打开 IDLE 点击File-New File 新建立一个py文件 2.向py文件中输入如下代码 import turtle class Stac ...

  6. 基于Protostuff实现的Netty编解码器

    在设计netty的编解码器过程中,有许多组件可以选择,这里由于咱对Protostuff比较熟悉,所以就用这个组件了.由于数据要在网络上传输,所以在发送方需要将类对象转换成二进制,接收方接收到数据后,需 ...

  7. c# 使用Renci.SshNet.dll操作SFTP总结

    1.操作类 /// <summary> /// SFTP操作类 /// </summary> public class SFTPHelper { #region 字段或属性 p ...

  8. Linux之文件、目录

    Linux之文件.目录 文件权限 User.Group.Others 在Linux中,任何一个文件都具有这三种身份的个别权限,三者的区别是 User: 指每一个单独的用户,例如member1,memb ...

  9. ssh自动登入

    公司的服务器在国外,所以测试的查看日志的时候需要测试机,然后继续ssh 非常不方便,所以编写一个简单的ssh登入脚本 #!/usr/bin/expectset timeout 3spawn ssh n ...

  10. Sorting a Three-Valued Sequence(三值的排序)

    Description 排序是一种很频繁的计算任务.现在考虑最多只有三值的排序问题.一个实际的例子是,当我们给某项竞赛的优胜者按金银铜牌序的时候. 在这个任务中可能的值只有三种1,2和3.我们用交换的 ...