특정 필드에 동일 데이터가 있을 경우 update, 없으면 insert

리눅스/MySQL|2019. 12. 27. 08:30
반응형

아래 예저는 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 합니다.

 

반응형

댓글()