PostgreSQL DB를 transaction 하고 수정, 삭제, 삽입을 걱정없이 하기
DB를 조작하다보면 실수하는 경우가 있습니다. 만약 지우거나 수정하면 안되는 Record를 건드리게 되면 사태는 상당히 심각하게 돌아갈수 있습니다.
이때 postgres의 'Begin transaction'을 미리 사용하면 'Begin transation'이전의 상태로 복원할수 있습니다.
$ Begin transation
'Begin transaction'을 사용하고 coffees Table을 조회했습니다. 이제 id가 4인 커피를 지우도록 하겠습니다.
$ DELETE FROM coffees WHERE id=4;
위 사진처럼 4를 지웠습니다. 하지만 확인해보니 4를 지우는 것이 아니라 5를 지우는 것이였습니다. 이때 다행히 'Beign transaction'상태이기 때문에 'rollback'를 입력하면 됩니다.
$ rollback
롤백 된것을 확인할수 있습니다. 4번 커피 Record도 무사한 것을 알수 있습니다. 하지만 정말 4번을 지워햐 하는 것이 맞다면 'commit'를 실행하면 됩니다.
$ commit;
'commit'를 입력하면 원복이 불가능 합니다. 따라서 'commit'를 입력하기 전에 한번더 생각해 주시기 바랍니다.
댓글
댓글 쓰기