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

MySQL UPDATE 쿼리 SET 절에서 백틱이 작동하지 않는 이유와 해결 방법

MySQL UPDATE 쿼리의 SET 절에서 백틱 사용하기

MySQL에서 백틱(`)은 데이터베이스, 테이블, 컬럼 이름과 같은 식별자(identifier)를 감쌀 때 사용됩니다. 백틱이 작동하지 않는 것처럼 보이는 경우 대부분은 문법을 잘못 작성했기 때문입니다. 아래와 같이 올바른 형식으로 작성하면 백틱은 정상적으로 작동합니다.

update `yourTableName` set `yourTableName`.`yourColumnName`='yourNewValue' where yourCondition;

핵심은 SET 절에서 백틱으로 감싼 컬럼 이름 앞에 테이블 이름을 함께 명시해야 한다는 점입니다. 즉, `테이블명`.`컬럼명` 형태로 작성해야 합니다. 이제 실제 예제를 통해 단계별로 확인해 보겠습니다.

1. 테이블 생성

먼저 테이블을 생성합니다.

mysql> create table `DemoTable_1401`
    -> (
    -> Name varchar(20)
    -> );
Query OK, 0 rows affected (0.52 sec)

2. 레코드 삽입

insert 문을 사용하여 테이블에 레코드를 삽입합니다.

mysql> insert into `DemoTable_1401` values('Chris');
Query OK, 1 row affected (0.16 sec)
mysql> insert into `DemoTable_1401` values('David');
Query OK, 1 row affected (0.10 sec)
mysql> insert into `DemoTable_1401` values('Bob');
Query OK, 1 row affected (0.12 sec)

3. 레코드 조회

select 문을 사용하여 테이블의 모든 레코드를 확인합니다.

mysql> select * from `DemoTable_1401`;

위 쿼리는 다음과 같은 결과를 출력합니다.

+-------+
| Name  |
+-------+
| Chris |
| David |
| Bob   |
+-------+
3 rows in set (0.00 sec)

4. 백틱을 사용한 UPDATE 쿼리 실행

백틱을 활용하여 UPDATE 쿼리를 실행해 보겠습니다.

mysql> update `DemoTable_1401` set `DemoTable_1401`.`Name`='Adam' where `Name`='David';
Query OK, 1 row affected (0.15 sec)
Rows matched: 1  Changed: 1 Warnings: 0

5. 업데이트 결과 확인

테이블의 레코드를 다시 한번 조회하여 변경 사항을 확인합니다.

mysql> select * from `DemoTable_1401`;

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

+-------+
| Name  |
+-------+
| Chris |
| Adam  |
| Bob   |
+-------+
3 rows in set (0.00 sec)

'David'가 'Adam'으로 성공적으로 변경된 것을 확인할 수 있습니다. 참고로 MySQL에서 백틱은 오직 식별자(테이블명, 컬럼명 등)를 감싸는 용도로만 사용되며, 문자열 값은 반드시 작은따옴표(')로 감싸야 합니다. 따라서 SET 절에서 백틱이 작동하지 않는다면 컬럼 이름 앞에 테이블 이름을 붙여 `테이블명`.`컬럼명` 형식으로 올바르게 작성했는지 확인해 보시기 바랍니다.