Quote:
id : primary key
data : int
table a
id|data
1|100
2|200
이렇게 있을 때,
update a set id=4;
라는 query을 봅시다.
기본적으로 sql은 tuple단위로 보기 때문에, 한 tuple씩 보면서 처리해야 겠지요?
그렇다면 첫번째 tuple을 (4,100)으로 바꾸고,
두번째 tuple을 (4,200)으로 바꾸면서 "이런! 4가 이미 있잖아! 버럭!"하면서, 에러를 뿜어야 합니다.
한데, 한 query는 atomic해야 하니, 이전 것 까지 되돌려야겠지요 -o-
.... 허나! 허나!
mysql에서 테스트해본 결과, 앞에 것은 바뀝니다. 즉, 두번째 tuple을 바꾸면서 에러를 뿜고, 앞의 것은 되돌리지 않는군요. (바뀐 row의 개수도 알려주지 않습니다 -o-)