반응형
Notice
Recent Posts
Recent Comments
Link
Dong Log
MySql에서 데이터 비교와 삽입을 동시에 하는 방법 본문
비즈니스 로직에서 기존에 존재하는 데이터를 확인한 후에 insert 쿼리를 수행하면서 이 과정을 한 쿼리에서 진행할 수 없을까? 해서 찾아봤는데 아래와 같이 처리할 수 있었다.
INSERT INTO TEST_TBL(name) SELECT 'test' FROM DUAL WHERE NOT EXISTS (SELECT name FROM TEST_TBL WHERE name='test');
기존에 존재하는 데이터를 확인 후에 insert 쿼리를 수행한다면 비즈니스 로직과 두번의 쿼리를 수행하여 효율적이지 못하다.
따라서 이같이 쿼리도 줄이고 비즈니스 로직을 줄일수 있는 효과를 얻을 수 있다.
마지막으로 생소한 부분을 집고 넘어가자
- NOT EXISTS 예약어 : 서브쿼리에만 사용할수 있는 예약어로 단순값에 사용할 수 있는 IN 예약어와는 다르다.
우선 EXISTS는 서브쿼리의 데이터가 있는지 없는지 참 거짓을 반환 하고 NOT 예약어는 EXISTS 예약어 결과의 반대로 해석이 된다.
반응형
'Dev. > database' 카테고리의 다른 글
[mysql, mybatis] insert 시, 키 값 바로 가져오기 (0) | 2021.03.31 |
---|---|
[mysql] 여러행 select 결과를 insert 하기 (0) | 2021.03.10 |
[mysql] 데이터 포맷 ( DATE_FORMAT ) (0) | 2019.02.19 |
[mysql] insert 한번에 여러 데이터를 저장하는 쿼리를 알아보자 (0) | 2019.02.07 |
Comments