Update쿼리시 Update할 Row가 없으면 Insert하나요? 0 7 1,762

by 문진균 [2007.03.19 17:02:12]


테이블의 구조는 다음과 같습니다.

studentinfos라는 테이블에 studentno,studentname,address,tel등의 컬럼이 있습니다.

 

이때

select *

from studentinfos

where studentno='12345'

쿼리를 날리면

 

결과값 : No Records(결과값이 없습니다.)

 

이상태에서

Update studentinfos

Set studentno='12345'

where studentname='홍길동'

 

이렇게 업데이트 쿼리를 날리니까

결과값 : No Records 라고 나오면서

studentno='12345'인 Row가 생겼습니다.

 

업데이트 쿼리시 조건에 맞는 row가 없으면

Insert를 실행하는 건가요?

제가 보기에는 확실히 insert를 한 것 같습니다만

어떻게 된건지 너무 궁금합니다. ^^;

 

windows XP

oracle 10g

golden32

사용하고 있습니다.

 

by 현 [2007.03.19 00:00:00]
그럴리 없습니다.
혹시 merge into 문을 쓰셨다면 모를까,
update 만으로 인서트를 하지는 않습니다.

by test [2007.03.19 00:00:00]
studentname이 '홍길동'인 모든 데이타에 대해서 studentno를 '12345'로 update했으니...
당연히 생겨야 하는거 아닌가여?????????

by finecomp [2007.03.19 00:00:00]
헛...SELECT와 UPDATE의 조건이 다르잖아요...;
질문의 두 개 기준이 전혀 다른 집합이네요...;

Update만으론 절대 insert는 일어나지 않습니다.

건승하시길...수고하세요~~

by 문진균 [2007.03.19 00:00:00]
아 Update문으로 Insert하는 경우는 없군요..
제가 무엇을 잘못알았나 보네요
그게 무엇인지 연구를 해봐야 겠습니다.
답변 감사드립니다. ^^

by 현 [2007.03.19 00:00:00]
혹시나 해서 말씀드리지만...
위의 test님 말씀처럼 모든 홍길동이란 로우에 대해서 12345로 모두 업데이트 치신 후 보니까 studentno='12345'인 Row가 생긴건 당연한겁니다.

질문 자체가 잘못된거네요...쩝

by 마농 [2007.03.19 00:00:00]
결과값(No Records)이 이상하네요.
결과는 다음과 같이 나와야 합니다.
select => No rows returns.
update => 0 rows Updated.

by ^^;; [2007.03.20 00:00:00]
위에 마농님의 말이 맞구용
혹시나 이렇게...
select *
from studentinfos
where studentno='12345' or studentname='홍길동'

이걸 실행해 보세요.
그럼 왠지 데이터가 있을 듯 싶네요 ^^
댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입