본문 바로가기
MySql

MySQL 오류 코드 : 1205. 내부 결합으로 업데이트하는 동안 잠금 대기 시간 초과

by 베이스 공부 2020. 12. 21.
반응형

내 테이블 simple_pack_data Time_Stamp 필드를 업데이트하여 temp_data 테이블에서 비슷한 제목의 필드 값과 일치 시키려고합니다. 각 테이블에는 Test_Number 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 문을 실행하면 :

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";

1 초도 채 걸리지 않으며 조인이 잘 작동한다는 것을 알고 있습니다. 업데이트가 정말 그렇게 오래 걸리나요? 그렇다면 시간 초과 값을 변경하여 통과 할 수있는 방법이 있습니까?

 

해결 방법

 


MySQL에는 이러한 작은 문제가 많이 있습니다. 마치 Access에서 작업하는 것과 같습니다. 프로그램이 잘못된 작업을 수행하고 오류를 발생시키지 않는 시간의 절반이 걸립니다.

 

참조 페이지 https://stackoverflow.com/questions/19458960

 

 

반응형

댓글