MYSQL 있으면 UPDATE 없으면 INSERT
ORACLE 에서 MERGE INTO 기능처럼 없으면 INSERT , 있으면 UPDATE 처리하는 문장이다.
일단 컬럼이 두개있는 테이블이 있다고 가정해 보자.
SELECT
USER_ID
, USER_NAME
FROM USER_INFO
이 테이블 키에 해당하는 데이터가 존재하면 UPDATE / 없으면 INSERT 하는 문장을 알아보자
CREATE TABLE USER_INFO
(
USER_ID INT
, USER_NAME VARCHAR(10)
)
일단 값이 중복되는지를 판단하는 조건은 테이블의 UNIQUE KEY이다.
그러므로 예를 든 USER_INFO TABLE 에 UNIQUE KEY 가 존재하지 않는다면 TABLE먼저 수정한다.
ALTER TABLE USER_INFO ADD UNIQUE (USER_ID);
그런 후에 임의의 값을 INSERT !
INSERT INTO USER_INFO VALUES(12345 , '수캥이');
이제 한번 해보장
내 이름이 구려서 멋진 이름으로 INSERT 혹은 UPDATE 하려고 한다.
INSERT INTO USER_INFO VALUES(12345 , '수캥이')
ON DUPLICATE KEY UPDATE
USER_NAME = '최자'
잉 ?
왜 두개가 삽입 되었다고 나오지 ㅎㅎ
그런데 결과는
오호
멋지게 잘 변경 되었고만 ! ㅎㅎ
"INSERT 문장"
ON DUPLICATE KEY UPDATE
"UPDATE 문장"
이것만 기억한다면 !
이제 java단에서
count(*) 조회해서
if( cnt > 0 ){
update();
} else {
insert();
}
는 그만 ~~
이상으로 MYSQL 에서 ORACLE 의 MERGE INTO 기능에 대해 알아 보았습니다.
'WORK > DB' 카테고리의 다른 글
ORACLE 공백제거 (0) | 2018.01.26 |
---|---|
DB 별 컬럼 변경 방법 (0) | 2018.01.25 |
mysql count() 함수 (0) | 2018.01.17 |
oracle sql developer 에서 다중 DB 사용하기 (0) | 2018.01.16 |
mssql 과 mysql 함수차이 (0) | 2018.01.16 |