mysql을 사용하면서 처음 알게된 구문인데... INSERT 구문에 같이 쓰이게 된다.
명령어만 봐도 직관적으로 이해할 수 있는데...
INSERT할 때 KEY가 duplicate가 되었을 때, UPDATE하는 방법에 대해 정의할 수 있다.
예를 들어,
프로그래머 입장에서는 귀찮게 select한 후 없으면 insert 있으면 update하는 것을 한방에 해결해 주긴 하지만, ANSI SQL이 아니라 그점이 좀 맘에 걸린다.
오늘 하고자 하는 얘기는... 쉽게 이해하는것 처럼 단순히 key에 대해서만 동작하지는 않는 다는 것이다.
메뉴얼을 잘 읽어본 분은 아시겠지만...
아래와 같은 경우에 동작하게 된다.
1. key
2. unique index
명령어만 봐도 직관적으로 이해할 수 있는데...
INSERT할 때 KEY가 duplicate가 되었을 때, UPDATE하는 방법에 대해 정의할 수 있다.
예를 들어,
INSERT INTO table (a,b,c) VALUES (1,2,3)컬럼 a가 key라고 가정할 경우, 이미 컬럼 a의 값이 1인 row가 있을 경우 해당 row의 c컬럼의 값을 1 증가시키라는 의미이다.
ON DUPLICATE KEY UPDATE c=c+1;
프로그래머 입장에서는 귀찮게 select한 후 없으면 insert 있으면 update하는 것을 한방에 해결해 주긴 하지만, ANSI SQL이 아니라 그점이 좀 맘에 걸린다.
오늘 하고자 하는 얘기는... 쉽게 이해하는것 처럼 단순히 key에 대해서만 동작하지는 않는 다는 것이다.
메뉴얼을 잘 읽어본 분은 아시겠지만...
아래와 같은 경우에 동작하게 된다.
1. key
2. unique index
[@From : http://goodfeel.tistory.com/1177225832 on Tue Feb 09 2010 12:12:05 GMT+0900 (Japan Standard Time)]
'DataBase' 카테고리의 다른 글
데비안(Ubuntu) 에 OCI(Oracle instant client) 설치하기 (0) | 2022.08.31 |
---|---|
show variables 변경하기 5.0 기준 서버 변수 변경하기 (0) | 2010.01.06 |
mysqldump 옵션 및 사용법 (0) | 2009.10.09 |
EXPLAIN을 사용해서 쿼리 최적화 하기 (1) | 2009.06.03 |
MYSQL Explain (0) | 2009.05.14 |