回答

收藏

MySQL错误代码:1205。锁定内部连接更新期间等待超时

技术问答 技术问答 225 人阅读 | 0 人回复 | 2023-09-14

我正在尝试更新Time_Stamp表中的字段simple_pack_data,以匹配temp_data表中标题相似的字段中的值。每个表都有一个叫做Test_Number和的字段Time_Marker,我正在使用这些字段INNERJOIN。Time_Marker就像阅读计数一样,Time_Stamp实际时间从测试开始。( |$ J. g/ {" E8 ]2 L  M* O
我想更新一下Time_Stamp一个测试,所以我一直在尝试的代码是:! }! E8 V/ ^  H3 l
UPDATE simple_pack_data sINNER JOIN (    SELECT *    FROM temp_data t    WHERE t.Test = "3"   ) AS tmpON s.Test_Number = tmp.Test_Number AND s.Time_Marker = tmp.Time_MarkerSET s.Time_Stamp = tmp.Time_StampWHERE s.Test_Number = "3";当我运行它时,它花了50多秒,并犯了1205个错误。如果我运行类似的结构select语句:, ~" w8 Z3 X, x/ V6 K1 h$ a
SELECT *FROM simple_pack_data sINNER JOIN  SELECT *    FROM temp_data t    WHERE t.Test = "3"   ) AS tmpON s.Test_Number = tmp.Test AND s.Time_Marker = tmp.Time_MarkerWHERE s.Test_Number = "3";它不到一秒钟,我知道join可以正常工作。更新真的花了这么长时间吗?如果是这样的话,有没有办法改变超时值,让它通过?* ]7 t, L8 {6 M  n6 R) [
                                                                / z' L/ s( s+ g  H9 r5 ]: h( @0 ?+ @
    解决方案:                                                               
/ |; i) ?9 {- i% m- `7 _7 y                                                                这个错误完全是MySQL没有尽力。最好的解决办法是摆脱它MySQL,但由于缺乏这种能力,性能博客文章帮助我解决了这个问题。
4 U$ z; T8 F' t! tMySQL这些小陷阱很多。Access在工作中,程序有一半的时间做错事而不引起错误。
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则