我正在尝试更新Time_Stamp
表中的字段simple_pack_data
,以匹配表中类似标题的字段中的值temp_data
。每个表都有名为Test_Number
and的字段Time_Marker
,我将其INNER JOIN
用于表。Time_Marker
就像阅读计数,其中Time_Stamp
是从测试开始的实际时间。
我想一次更新Time_Stamp
一个测试,所以我一直在尝试的代码是:
UPDATE simple_pack_data s
INNER JOIN (
SELECT *
FROM temp_data t
WHERE t.Test = "3"
) AS tmp
ON s.Test_Number = tmp.Test_Number AND s.Time_Marker = tmp.Time_Marker
SET s.Time_Stamp = tmp.Time_Stamp
WHERE s.Test_Number = "3";
当我运行它时,它需要超过 50 秒,我得到 1205 错误。如果我运行类似结构的选择语句:
SELECT *
FROM simple_pack_data s
INNER JOIN (
SELECT *
FROM temp_data t
WHERE t.Test = "3"
) AS tmp
ON s.Test_Number = tmp.Test AND s.Time_Marker = tmp.Time_Marker
WHERE s.Test_Number = "3";
它需要不到一秒钟的时间,我知道加入工作正常。更新真的要那么久吗?如果是这样,有什么方法可以更改超时值以便它可以通过它?