inflearn logo
강의

講義

知識共有

[リニューアル] 初めてのSQLとデータベース(MySQL) ブートキャンプ [入門から活用まで]

コードパターンで簡単にアクセスするpymysqlベースのMySQL修正と削除(アップデート)

파이썬에서 UPDATE 구문사용 시

445

sakuraibbo

投稿した質問数 6

0

OperationalError: (1205, 'Lock wait timeout exceeded; try restarting transaction')


해당 오류가 발생합니다. 아래는 제 소스코드입니다

사실 수업과 다를 바는 없다고 생각은 드는데..

다른 구문은 다 정상작동하는데 UPDATE 구문만 작동을 안하는데 이유가 있을까요? 전체 오류 메시지도 사진으로 첨부합니다

 

Workbench에서도 동일한 오류가 발생합니다 ㅠㅠㅠㅠ

 

#1. 라이브러리 import

import pymysql

#2. 데이터베이스에 접속하기

## host, port 등등은 mysql에서 확이

db = pymysql.connect(

host='localhost',

port=3306,

user='root',

passwd='비밀번호입력',

db='ecommerce',

charset='utf8')

#3. 커서 가져오기

cursor = db.cursor()

#4.sql 구문 만들기(INSERT, CREATE, DELETE 등등)

SQL = """

UPDATE product SET

TITLE ='달리샵린넨원피스 뷔스티에 썸머 가디건 코디전',

ORI_PRICE=33000,

DISCOUNT_PRICE=9900,

DISCOUNT_PERCENT=70

WHERE PRODUCT_CODE = '215673141'

"""

 

#5 SQL 구문 실행하기

cursor.execute(SQL)

 

#6 DB에 Complete 하기

db.commit()

#7 DB 종료하기

db.close()

 

스크린샷 2024-04-10 095937.png

python sql mysql dbms/rdbms 데이터-엔지니어링

回答 2

0

sakuraibbo

노트북 재부팅하니 해결은 되었습니다...

근데 정확한 이유는 아직도 모르겠습니다 ㅠㅠ

 

주피터 노트북으로 수업하다가

딱 한번 db.close() 안한 것이 영향을 준 것일까요?

0

communityai8509

안녕하세요, 인프런 AI 인턴입니다.

sakuraibbo님의 질문 관련하여, “OperationalError: (1205, 'Lock wait timeout exceeded; try restarting transaction')” 오류는 데이터베이스 내에서 락 대기 시간이 초과되어 나타나는 오류입니다. 이 문제는 대체로 데이터베이스 내의 트랜잭션이 서로 충돌하거나, 특정 작업이 너무 오래 걸리면서 발생합니다.

유사한 문제가 다루어진 여러 게시물 중 하나에서는, 해당 오류 발생 시 해결 방법에 대해 설명하고 있는데, 이와 관련된 mysql [실전] 크롤링과 데이터베이스 db와 프로그래밍 코드 작성과 팁 2 질문입니다 에서 좀 더 자세한 해결 방법을 제공하고 있습니다. 특히 해당 게시물에서는 오류의 원인을 이해하고 처리하는 방법에 대해 폭넓게 다루고 있어 도움이 될 것입니다.

기본적으로, Lock wait timeout exceeded 오류를 해결하기 위해 몇 가지 접근 방법이 제안됩니다:

  1. SQL 트랜잭션 최적화: 오류가 발생한 특정 SQL 쿼리나 관련 로직을 최적화하여 실행 시간을 줄이는 방법입니다.
  2. DB 설정 조정: MySQL 설정 중 innodb_lock_wait_timeout 값을 조정하여 락 대기 시간을 늘리는 방법입니다. 하지만 이는 일시적인 해결책일 수 있으므로, 근본적인 문제 해결을 위해서는 첫 번째 방법을 권장합니다.
  3. 진행 중인 트랜잭션 확인: 데이터베이스에 현재 진행 중이거나 막혀 있는 트랜잭션이 있는지 확인하고, 필요시 해당 트랜잭션을 종료하여 문제를 해결하는 방법입니다.

해당 오류는 다소 복잡한 데이터베이스의 내부 작업과 관련이 있으므로, 실제 문제 해결을 위해서는 데이터베이스 관리 및 트랜잭션 처리에 대한 이해가 필요할 수 있습니다. sakuraibbo님 경우엔 Workbench에서도 같은 오류가 발생했다고 했으므로, 동일한 트랜잭션이 데이터베이스 내 락을 유발하고 있는 것은 아닌지 확인해보시는 것도 좋겠습니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

실습을 따라하는데 데이터베이스가 보이지 않아요

0

54

1

섹션1 4강부터 강의 실행 안됨 이슈

0

77

1

강의 자료 다운로드 관

0

90

1

강의 영상이 안나와요..

0

82

1

섹션4 화면 자체가 안나와요

0

118

1

강의 화면이 안 보이고, 목소리밖에 안나와요 ;;

0

116

1

데이터 삭제 질문

0

123

1

mysql 설치가 되지 않습니다.

0

1387

3

강의 결과 질문 - SQLD, 데이터베이스 설계, 프로젝트 구축 하여 취업

0

147

1

지마켓 파일 불러왔는데, 테이블이 생성이 안됩니다

0

119

1

실습 코드 깃허브 업로드

0

145

1

sql_safe_updates 옵션

0

154

1

sql 설치 문제

0

1424

2

서브쿼리를 JOIN으로 바꾸기

0

157

1

중고급 SQL과 실전 데이터 문의

1

158

1

(맥환경) workbench 이용할 때 패스워드 입력 안해도 자동으로 활성화 가능해져요..

0

351

1

강의 커리큘럼 질문 있습니다.

0

176

1

강의 자료 이미지가 보이지 않습니다.

0

162

1

Join 구문에서 메인 테이블

0

178

1

예제문제 추가 쿼리 질문

0

204

2

강의 화면 출력이 되지 않는 현상

0

211

1

파이썬으로 다루는 MySQL

0

208

1

JOIN 활용 SQL 연습문제

0

179

1

Dbeaver 라는 SQL 쿼리 실행 툴을 써도 될까요?

0

305

1