오라클에서 해당 id의 데이터를 카운트하여 10개가 안되면 insert, 10개가 넘으면 1개 delete 후 insert 하기
deahan1980 수험생

답변 채택시 : 0코아

답변 0 추천 0 조회 236 2019.02.21
mssql만 해오다가 oracle 은 처음 접합니다.
해결해야할 것은 "오라클에서 해당 id의 데이터를 카운트하여 10개가 안되면 insert, 10개가 넘으면 1개 delete 후 insert 하기" 입니다.

일단 mssql로 생각해보면 아래와 같이 하면 될 것 같습니다. 그런데 오라클의 경우 merge(?) 라는 것도 있고
뭔가 쿼리 하나로 처리를 하기도 하더라고요.

질문입니다. 아래와 같은 처리를 oracle 에서는 어떤식으로 풀어야하나요?? 답변 부탁 드립니다.

조건 1 - 쿼리 1개로 풀어야한다.
조건 2 - 쿼리 1개로 풀 수 없는거라면 할 수 없는거라고 알려주시면 감사하겠습니다.
            그러면 C# MVC에서 각기 따로 쿼리해서 풀어야겠네요...

-- mssql 에서의 처리했다면 이렇게 PROC를 만들어서 했을듯 하네요...

declare @total_Cnt int
set @total_Cnt = select count(*) from table_A where id = 'aaa'


if @total_Cnt < 10 then
  insert -- 데이터 INSERT
else
  delete -- aaa id의 1번으로 insert 된 데이터를 삭제처리함
  insert -- 삭제됐으니 aaa id로 1개 insert (10개를 유지하도록)
end
댓글 (0)
목록 답변등록