현상
Python으로 MySQL을 연동하여 사용 중이다. 특정 테이블에 데이터를 INSERT 하려고 했더니 아래와 같은 에러 메세지가 발생하면서 실패했다.
pymysql.err.internalerror (1054 unknown column in 'field list')어떤 부분이 문제였는지 적어둔다.
원인
원인은 크게 두 가지로 정리할 수 있다.
- 컬럼이 테이블에 실제로 없는 경우
- 테이블에 컬럼이 존재하지만 컬럼의 데이터 타입과 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
728x90