Computer >> 컴퓨터 >  >> 프로그래밍 >> MySQL

MySQL 오류 1054 'Unknown column' 발생 원인과 해결 방법

MySQL 오류 1054란 무엇인가?

MySQL에서 #1054 - Unknown column 오류는 다양한 상황에서 발생할 수 있으며, 그중 가장 흔한 원인 중 하나는 문자열 값을 삽입할 때 작은따옴표(')를 누락하는 것입니다. 이 글에서는 해당 오류가 발생하는 이유와 해결 방법을 예제와 함께 자세히 살펴보겠습니다.

오류가 발생하는 상황

varchar 타입의 값을 INSERT 할 때, 문자열을 작은따옴표로 감싸지 않으면 MySQL은 해당 문자열을 열(column) 이름으로 인식합니다. 그 결과 아래와 같은 오류가 발생합니다.

mysql> insert into DemoTable798 values(100,Adam);
ERROR 1054 (42S22): Unknown column 'Adam' in 'field list'

MySQL은 따옴표가 없는 Adam을 값이 아니라 열 이름으로 해석하기 때문에, 테이블에 존재하지 않는 열이라며 위와 같은 오류를 반환하는 것입니다.

해결 방법

해결 방법은 간단합니다. 문자열 값을 반드시 작은따옴표로 감싸주면 됩니다.

mysql> insert into DemoTable798 values(100,'Adam');

실전 예제로 확인하기

1단계: 테이블 생성

먼저 예제에 사용할 테이블을 생성합니다.

mysql> create table DemoTable798 (
   StudentId int,
   StudentName varchar(100)
);
Query OK, 0 rows affected (0.51 sec)

2단계: 데이터 삽입

INSERT 명령어를 사용해 몇 개의 레코드를 삽입합니다. 이때 문자열 값에는 반드시 작은따옴표를 사용해야 합니다.

mysql> insert into DemoTable798 values(100,'Adam');
Query OK, 1 row affected (0.16 sec)
mysql> insert into DemoTable798 values(101,'Chris');
Query OK, 1 row affected (0.19 sec)
mysql> insert into DemoTable798 values(102,'Robert');
Query OK, 1 row affected (0.16 sec)
mysql> insert into DemoTable798 values(103,'Carol');
Query OK, 1 row affected (0.16 sec)

3단계: 결과 확인

SELECT 문으로 테이블의 모든 레코드를 조회합니다.

mysql> select *from DemoTable798;

실행 결과는 다음과 같습니다.

+-----------+-------------+
| StudentId | StudentName |
+-----------+-------------+
| 100 | Adam |
| 101 | Chris |
| 102 | Robert |
| 103 | Carol |
+-----------+-------------+
4 rows in set (0.00 sec)

정리

MySQL 오류 1054는 존재하지 않는 열을 참조할 때 발생하는 오류이며, 문자열 값에 작은따옴표를 붙이지 않아도 동일한 오류가 나타날 수 있습니다. SQL문을 작성할 때 문자열 리터럴은 항상 작은따옴표로 감싸는 습관을 들이면 이러한 오류를 쉽게 예방할 수 있습니다.