특정 필드에 동일 데이터가 있을 경우 update, 없으면 insert
아래 예저는 users 테이블의 ID 필드에 동일한 값이 있을 경우 update 를, 없는 경우 insert 를 해주는 한 줄 쿼리 문입니다.
mysql> CREATE TABLE `users` (
`no` int(10) NOT NULL AUTO_INCREMENT,
`ID` varchar(16) NOT NULL,
`NAME` text,
PRIMARY KEY (`no`))
ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
아래와 같이 ID 필드는 유일한 값만 있도록 설정하는 것이 포인트!
mysql> alter table users ADD UNIQUE (ID);
현재 테이블 상태 입니다.
mysql> desc users;
+-------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+----------------+
| no | int | NO | PRI | NULL | auto_increment |
| ID | varchar(16) | NO | UNI | NULL | |
| NAME | text | YES | | NULL | |
+-------+-------------+------+-----+---------+----------------+
입력을 해봅니다.
mysql> INSERT INTO users (ID, NAME) VALUES ('sysdocu', 'HongKilDong') ON DUPLICATE KEY UPDATE NAME='HongKilDong';
ID (sysdocu) 가 없으면 INSERT 쿼리문을,
ID (sysdocu) 가 존재할 때는 NAME 컬럼만 UPDATE 합니다.
'리눅스 > MySQL' 카테고리의 다른 글
MySQL 데이터 변경 감지 (trigger) + 시스템 명령어 사용 (udf) (0) | 2020.05.31 |
---|---|
MySQL 5.7 사용자 계정 추가, root 패스워드 갱신 (0) | 2020.02.03 |
root 관리자 계정 이름을 다른 아이디로 변경 하기 (0) | 2019.12.06 |
MySQL 5.6 소스 설치 (0) | 2019.08.29 |
mongodump 사용시 조건을 주어 백업하기 (0) | 2019.06.18 |