값이 있을 경우 실행되는 조건이 IF EXISTS 이고, 값이 없을 경우 실행되는 조건이 IF NOT EXISTS 이다.
SELECT INSERT UPDATE DELETE 등 CRUD 에 자유로이 이용 가능한 모양이다.
Ex) mybatis
INSERT INTO sample_table
(
column1
, column2
, column3
)
SELECT #{val1}
, #{val2}
, #{val3}
FROM sample_table
WHERE NOT EXISTS (
SELECT column1
FROM sample_table
WHERE column1 = #{val1}
) LIMIT 1
-WHERE NOT EXISTS 안에 선언된 서브쿼리조건 , 즉 column가 매개값과 중복되지 않는다면 2번째 서브쿼리문 출력을 하고 이후에 컬럼에 맞는 자리에 INSERT를 시키는 모양이다.
간단하게 이야기하면, column1에 매개변수 val과 같은 값이 없다면 INSERT 한다는 쿼리다.
'MySQL' 카테고리의 다른 글
Foreign Key Options (0) | 2020.08.07 |
---|---|
Paging 처리에 쓰이는 limit (0) | 2020.07.29 |
출력하는 컬럼을 제한하는 limit (0) | 2020.07.22 |