티스토리 뷰

mysql 아니 maria db 에서 오라클의 merge into 처럼 값이 없으면 insert 있으면 update를 하고 싶었다. 

찾아보니 mysql, maria db 에도 있었다. 

바로 on duplicate key update 였다. 

오라클의 merge into 보다 훨씬 쉽게 쿼리가 설계되었다. 

그럼 함께 살펴보자. 

당연히 테이블에는 키가 있어야 한다. 

알기 쉽게 바로 에제로 들어간다. 


create table sc_setting( 
id int(6) 
,name varchar(500) not null 
,godo_srl varchar(100) 
,url varchar(900) 
,price varchar(100) 
)"; 

ALTER TABLE sc_setting 
ADD PRIMARY KEY (`id`); 

테이블을 만들고 키도 만든다. 

INSERT INTO sc_setting (id, name, godo_srl, url, price) 
VALUES ('$id','$a','$b','$c','$d') 
on duplicate key update  
name='$a',godo_srl='$b',url='$c',price='$d'; 

이런식으로 사용하면 된다. 

좀 설명하면 

우리가 일반적으로 사용하는 insert 문을 먼저 적는다. 
INSERT INTO sc_setting (id, name, godo_srl, url, price) 
VALUES ('$id','$a','$b','$c','$d') 

그런다음 
on duplicate key update  
이 문을 넣는다. 이 얘기는 key 즉 우리가 위에서 만든 key 인 id가 있으면 이라는 얘기다.

그다음 
name='$a',godo_srl='$b',url='$c',price='$d' 
이것은 우리가 보통 사용하는 update 문의 set 부분을 넣으면 된다. 

간단하죠? 

다음 장에는 여러 필드를 사용해서 insert update 가 되는 전체 예제롤 소개하겠다.
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/02   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28
글 보관함