MySql 存储过程遍历游标出错

MySql 存储过程遍历游标出错,第1张

MySql 存储过程遍历游标出错

DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET DONE = 1;

这种语句是异常捕获内容,在mysql中都是使用HANDLER 来捕获异常的。

建议你看下:MySQL存储过程详解

MySQL游标循环遍历的使用

这个死锁估计是有数据没了, 或者某个 *** 作被回滚了

要避免这个问题方法有很多

事务尽量不要太复杂

在使用表或者行的时候, 尽量设定一个顺序, 比如同一时间段线程A 竞争 1 2 资源, 线程 B 竞争 2 1 资源出现死锁, 如果改成 A 使用 1 2 B 也是使用的 1 2 , 这样再差也只会出现线程A/B去等待线程B/A执行完毕再去访问资源

将一些容易出现死锁的字段改成索引, 这样在竞争资源的时候mysql将不再上锁[doge]

如果你是mysql数据库, 则尽量避免使用 insert select 这样的sql(oracle不用), 因为他会为你需要查询的条件也上锁, 这样也会容易出现死锁的问题

捕获异常, 然后在出现这个异常的时候再次执行一次死锁的sql语句

待续, 我也没遇到更多的出现死锁的情况了, 等遇到再说

以上几点如果有错的话, 请指出, 我们相互探讨, 毕竟这也是我从笔记里面找出来的, 可能有错误

CREATE DEFINER = CURRENT_USER PROCEDURE `NewProc`(`uname` varchar,`ucount` int)

这个必须带长度 如 varchar(120)

这个系统不会提示让你填长度,一定要注意!!

以上就是关于MySql 存储过程遍历游标出错全部的内容,包括:MySql 存储过程遍历游标出错、MYSQL 存储过程报错Deadlock found when trying to get lock; try restarting transaction、MySQL 存储过程出错,能帮忙看下吗等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9740533.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-01
下一篇2023-05-01

发表评论

登录后才能评论

评论列表(0条)

    保存