Python

[Python] pymysql.err.internalerror (1054 unknown column in 'field list' )

비번변경 2023. 6. 5. 18:50

현상

Python으로 MySQL을 연동하여 사용 중이다. 특정 테이블에 데이터를 INSERT 하려고 했더니 아래와 같은 에러 메세지가 발생하면서 실패했다.

pymysql.err.internalerror (1054 unknown column in 'field list')

어떤 부분이 문제였는지 적어둔다.

 

 

원인

원인은 크게 두 가지로 정리할 수 있다.

  1. 컬럼이 테이블에 실제로 없는 경우
  2. 테이블에 컬럼이 존재하지만 컬럼의 데이터 타입과 INSERT 할 데이터의 타입이 맞지 않는 경우

 

이 글의 경우에는 후자로 INT로 정의되어 있던 컬럼에 문자열 데이터를 추가하려고 했던 게 원인이었다.

 

 

해결

이 글에서는 데이터베이스 테이블의 컬럼 타입을 INT에서 VARCHAR로 변경하여 해결했다.

 

+ 조금 검색해보니 주로 Python을 이용해 문자열 데이터를 테이블에 INSERT 할 때 만나는 것 같다.

MySQL에서 문자열 값은 따옴표로 묶여 있어야 한다. 코드에서 SQL에 인자값을 전달할 때 그 부분을 확인하거나 Print로 찍어보면 좋다.

# 에러 발생
sql = f"INSERT INTO test (uri) VALUES ({uri})"

# 수정
sql = f"INSERT INTO test (uri) VALUES ('{uri}')"

 

 

참고 문서

https://bsssss.tistory.com/157

Unknown column in 'field list' error on MySQL Update query