본문 바로가기
SQL/MySQL

MySQL REPLACE INTO 문 사용방법 및 예제

by wakestand 2021. 2. 19.
반응형

MySQL에서 REPLACE INTO는

INSERT 와 UPDATE 용도로 사용할 수 있는데

 

INSERT 용도로 사용 시에는 

REPLACE INTO 테이블명(컬럼명) VALUES(값);

이렇게 사용해주면 되는데

 

위 스크린샷과 같이 아무 값도 없을 경우에는

쿼리 수행 시 INSERT가 되지만

 

KEY는 동일하게 유지한 채 타 컬럼값만 바꿔주고

쿼리 수행 후 SELECT를 해 보니

이전 KEY가 들어있던 ROW가 삭제된 후

내가 REPLACE 부분에 작성한 ROW가 신규로 들어가게 된다

 

다음으로 UPDATE 용도로 사용할 시에는

REPLACE INTO 테이블명 SET 컬럼명 = 값;

이렇게 사용하는데 여기서 중요한 점은

WHERE을 사용할 수 없다!!

 

REPLACE INTO를 UPDATE 용도로 사용 시

SET 부분에 해당 테이블의 KEY에 해당하는 값이 없다면 

SET에 입력한 내용을 기준으로 INSERT가 되며

넣지 않은 값은 DEFAULT와 NULL로 들어가게 된다

 

다음으로

SET 부분에 테이블의 KEY에 해당하는 값이 들어있다면

SET에 입력한 내용을 기준으로 해당 KEY가 UPDATE 된다

 

마지막으로 예제에 사용한 쿼리는 아래와 같다

 

SELECT * FROM TB1 -- 확인용

-- REPLACE를 INSERT 처럼 사용 
-- 삽입하려는 내용 중 기존 Key가 없으면 INSERT와 동일
-- 삽입하려는 내용 중 기존 Key가 있으면 해당 ROW 삭제 후 삽입
-- 작성하지 않은 컬럼값은 DEFAULT(기본값)과 NULL로 들어감
REPLACE INTO TB1(NAME) VALUES('고고');

-- REPLACE를 UPDATE 처럼 사용
-- SET 부분에 기존 테이블의 Key가 없으면 SET 내용으로 INSERT
-- SET 부분에 기존 테이블의 Key가 있으면 SET 내용으로 UPDATE
-- SET 부분에 작성하지 않은 값은 DEFAULT(기본값)과 NULL로 들어감
REPLACE INTO TB1 SET NAME = '고고2', AGE = '99';
반응형

댓글