IF NOT EXITS (SELECT * FROM [TABLE])
   INSERT ...

MS-SQL 에서는 위와 같이 테이블의 값을 조회해서 없으면 인서트 하는 쿼리를 아래와 같이 IF NOT EXISTS를 이용해서 쉽게 구현할 수 있었는데

오라클에서는 IF NOT EXISTS() 가 안되는것 같더군요..

해서 검색해본 결과

 INSERT INTO [TABLE]
    SELECT [COL] FROM DUAL
WHERE NOT EXISTS (SELECT * FROM [TABLE] WHERE {});

이와 같은 식으로 인서트 할 때 WHERE 조건에 NOT EXISTS를 사용해서 처리가 가능합니다.
이처럼 인서트 외에도 각 로직에 맞게끔 WHERE NOT EXISTS 를 잘 활용하면 SQL과 같은 기능을 구현하는데 무리가 없을 듯 합니다.

저 개인적으로는 MS-SQL에 있는 IF NOT EXISTS가 더 맘에 들지만요;;;

'SQL > ORACLE' 카테고리의 다른 글

다음 행의 데이터를 가져오는 LEAD 함수  (3) 2009.05.12

AND