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

MySQL 데이터베이스에서 기존 데이터를 삭제하지 않고 새로운 데이터를 업데이트하는 방법

MySQL에서 기존 데이터를 그대로 유지한 채 새로운 데이터를 추가하고 싶다면 UPDATE 문과 CONCAT() 함수를 함께 사용하면 됩니다. 이 방법은 컬럼의 기존 값 뒤에 새 값을 연결(append)하여 저장하기 때문에, 이전 데이터가 삭제되지 않습니다.

기본 문법

update yourTableName set yourColumnName=concat(yourColumnName,',yourValue');

위 문법에서 CONCAT() 함수는 기존 컬럼 값과 새로운 값을 하나의 문자열로 합쳐줍니다.

예제 테이블 생성

먼저 실습용 테이블을 만들어 보겠습니다.

mysql> create table DemoTable
-> (
-> CustomerName varchar(100)
-> );
Query OK, 0 rows affected (0.54 sec)

데이터 삽입

INSERT 명령어를 사용해 몇 개의 레코드를 입력합니다.

mysql> insert into DemoTable values('Chris');
Query OK, 1 row affected (0.24 sec)

mysql> insert into DemoTable values('David');
Query OK, 1 row affected (0.16 sec)

mysql> insert into DemoTable values('Sam');
Query OK, 1 row affected (0.14 sec)

현재 데이터 확인

SELECT 문으로 테이블의 모든 레코드를 조회해 보겠습니다.

mysql> select *from DemoTable;

출력 결과

+--------------+
| CustomerName |
+--------------+
| Chris        |
| David        |
| Sam          |
+--------------+
3 rows in set (0.00 sec)

기존 데이터를 유지하며 업데이트하기

이제 기존 데이터를 삭제하지 않고 새로운 값 'Brown'을 추가하는 UPDATE 쿼리를 실행해 보겠습니다.

mysql> update DemoTable set CustomerName=concat(CustomerName,',Brown');
Query OK, 3 rows affected (0.14 sec)
Rows matched: 3 Changed: 3 Warnings: 0

쿼리 실행 후 테이블의 레코드를 다시 한번 확인해 보겠습니다.

mysql> select *from DemoTable;

출력 결과

+--------------+
| CustomerName |
+--------------+
| Chris,Brown  |
| David,Brown  |
| Sam,Brown    |
+--------------+
3 rows in set (0.00 sec)

결과를 보면 각 고객 이름 뒤에 ',Brown'이 연결되어 기존 데이터가 그대로 보존된 것을 확인할 수 있습니다. 이처럼 CONCAT() 함수를 활용하면 데이터를 덮어쓰지 않고 기존 값에 새로운 정보를 손쉽게 추가할 수 있습니다.