MSSQL 기본설정이 Auto commit 인데 이 설정 그대로 사용하시는 편인가요?
모 자바개발자 커뮤니티에서 MSSQL 로 작업하다가 잘못 delete 하는 바람에 복구하는데 어려움을 겪고 있다는 글이
올라 왔는데..
댓글들이 mssql 오토커밋이 문제라는등,,,
그래서 MSSQL 안쓴다는둥 별 말 같지도 않는 댓글이 눈에 띄네요..
예전에 비슷한 논제로 코난님이 볼랜드포럼에서 관리자분과 한판(?) 하신적도 있던데..
Comment 6
-
건우아빠
2013.03.27 17:57
-
문연군
2013.03.27 18:37
최근 답변을 잘 안달았지만 이글보니 갑자기 예전 코난님 싸우신 기억이 떠오르면서
열받네 -_-;;
auto commit 문제가 아니라 Error Handling 제대로 못한 개발자 문제 입니다.
그럼 auto commit 이 기본인 db2, mysql도 문제겠네요 -_-?
-
탱소연
2013.03.27 19:28
설정을 바꿀수 없으면 몰라도 설정을 바꿀수 있는데도 그걸 미리설정하지않았다가 본인이 실수한거면..
본인 탓해야하지 않나요..ㅋ
이건왜 이걸 못하게 만들어논거야가 아니라... 이거왜 기본이 이거야라면.....말이죠...ㅋ
한두번 쿼리 날려본거도 아닐텐데... 사전에 알고있었다가도 바꾸지 않았다면 사용자 문제가 아닐까 싶습니다.....ㅋ
이러다가 왜 키보드 delete 키가 엔터키 옆에있어서 실수로 눌리게 만들었냐 라고 따진다면...음......ㅋ
-
처리짱
2013.03.27 19:57
Lumigent라는 툴을 참 유용하게 썼었는데 요즘에도 있나 모르겠네요;
-
방랑도사
2013.03.28 09:06
Auto commit 없다면 오히려 락땜시 골치아플거같은데요.
당연히 데이터 핸들링시는 BEGIN TRAN은 기본이지요. 적용된 ROW 갯수도 확인해보고, SELECT로 데이터가 잘 변경되었나 몇개 데이터라도 확인한후 COMMIT TRAN
오라클 쓰던사람이 MSSQL쓰고 하는말 아닐까요...
-
버즈베잇
2013.03.28 12:24
자바쪽 커뮤니티라 아마 대부분 오라클 사용자 일 겁니다..
오라클과 다르면 이상한(?) 것으로 치부하는것 같아서 글을 올려 봤습니다..
저런 실수는 오토 커밋 보다는 관리자의 실수로 봐야 할듯.
오토 커밋 아니더라도
delete 날리고 바로 commit 날리면 의미 없구요.
오토커밋 아니어도 실수 했던분은 동일한 실수를 할 가능성에 한표.
대량의 자료를 삭제시에는 반드시 백업후 삭제를 생활화...
삭제전에는 반드시 백업은 필수죠..
중요한 테이블인 경우는 반드시 삭제 히스토리가 남도록 하는것도 방법일듯. (삭제되면 힘들어지는 테이블....)
삭제 쿼리를 만들때 저 같은 경우는 select 쿼리를 먼저 만들고 그 쿼리를 delete문으로 수정을 합니다. 겸손해야 합니다...ㅎㅎ
삭제할 내용을 확인후 삭제를 수행. 조회화면은 화일로 저장하죠.
데이트도 마찮가지로.... 내용이 적은 경우는 테이블 전체를 화일로 받아놓고 수정을 합니다...
저도 업데이트를 피곤한 상태에서 마우스로 드러그 하다가 일부가 안되어 일주일동안 고생한적 있어서....
삭제나 업데이트시에는 한줄로 쿼리문을 만들기도 합니다. 마우스 드러그해서 할때 혹시 실수 할까봐....
당연 begin tran은 합니다.