一.操作sql语句时报错.
- Lock wait timeout exceeded; try restarting transaction --这个意思是锁没有释放,超时了
解决方案:
1.是不是打了断点一直没有放行 导致事务没有提交
2.我们可以通过到information_schema 中来进行查找被锁的语句。
解释: information_schema这张数据表保存了MySQL服务器所有数据库的信息。如数据库名,数据库的表,表栏的数据类型与访问权限等。再简单点,这台MySQL服务器上,到底有哪些数据库、各个数据库有哪些表,每张表的字段类型是什么,各个数据库要什么权限才能访问,等等信息都保存在information_schema表里面
3.我们可以用下面三张表来查原因:
innodb_trx 当前运行的所有事务
innodb_locks 当前出现的锁
innodb_lock_waits 锁等待的对应关系
如果数据库中有锁的话,我们可以使用这条语句来查看:
select * from information_schema.innodb_trx
LOCK WAIT为占用系统资源的语句,我们需要杀掉这个锁,执行 kill 线程id号。上面这条记录的id为199120823069, trx_mysql_thread_id 为 738178711, 所以我们执行:kill 738178711杀掉这个MySQL语句的线程即可。
4、终极方法
如果以上方法杀掉线程,但还是不能解决,则我们就可以查找执行线程用时比较久的用户,然后直接干掉。
SELECT * from information_schema.`PROCESSLIST` WHERE Time > 1000 AND USER = 'wonguser' ORDER BY TIME desc;
kill 740097562
这样把所有耗时比较久的任务干掉,就可以解决这个问题了。
mysql导入sql文件超时,报错
解决:
show VARIABLES like '%max_allowed_packet%';
set global max_allowed_packet = 16*1024*1024*10
mysql使用navict导入报错 可以使用小海豚或者用cmd导入
二. 操作svn报错
错误内容: Previous operation has not finished; run 'cleanup' if it was interr 进入死循环了
解决: 先去官网下载sqlite3.exe(点击下载)
2.https://blog.csdn.net/yu102655/article/details/83714524
三.需要添加字段进行排序
例如: 我需要创建一个sort字段,利用sort进行排序的话这个字段类型不要用varchar类型 用int或者
图片.png
sql例子:
SELECT
t.sc_id,
t.SORT,
ifNULL(firstName,towName) as firstName
,case when firstName is null then breed_name else towName end towName
,case when firstName is null then "" else breed_name end threeName
,t.breed_type,breed_unit,pid,PUTQUANTITY,ACTUAL,DISPATCHQUANTITY,CANCELQUANTITY
, ifNULL(firstName,1) as firstType
FROM
(
SELECT
a.SORT,
a.SC_ID,
a.BREED_NAME,
a.BREED_TYPE,
a.BREED_UNIT,
a.PID,
( SELECT a1.breed_name FROM SUPPLIES_CATEGORY_INFO a1 WHERE a1.sc_id = a.pid ) AS towName,
(SELECT b1.breed_name FROM SUPPLIES_CATEGORY_INFO a1 LEFT JOIN SUPPLIES_CATEGORY_INFO b1 ON b1.sc_id = a1.pid WHERE a1.sc_id = a.pid ) AS firstName ,
sum(c.INVENTORY_QUANTITY) as PUTQUANTITY, -- 入库数量
sum(c.ACTUAL_INVENTORY) as ACTUAL , -- 库存数量
sum(d.DELIVERY_QUANTITY) as DISPATCHQUANTITY, -- 调度出库数量
sum(e.DELIVERY_QUANTITY) as CANCELQUANTITY -- 核销出库数量
FROM
SUPPLIES_CATEGORY_INFO a
LEFT JOIN SUPPLIES_CATEGORY_INFO b ON a.sc_id = b.pid
LEFT JOIN ENTERPRISE_PUT_INFO c ON a.breed_name = c.breed and c.EW_ID = "1" and c.MONTHLY BETWEEN "2020-08" and "2020-11"
LEFT JOIN ENTERPRISE_OUT_INFO d ON a.breed_name = d.breed and d.OUT_TYPE = "1" and d.EUI_STATUS ="T"
LEFT JOIN ENTERPRISE_OUT_INFO e ON a.breed_name = e.breed and e.OUT_TYPE = "2" and e.EUI_STATUS ="T"
WHERE
a.pid IS NOT NULL
AND b.pid IS NULL
GROUP BY a.breed_name
order by a.SORT asc
) as t
网友评论