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在工作中,程序有一半的时间做错事而不引起错误。 |
|
|
|
|
|