반응형
트랜잭션 내에서 테이블 자르기
SQL "truncate table"명령을 트랜잭션 내에서 사용할 수 있습니까? 나는 앱을 만들고 있고 내 테이블에는 수많은 레코드가 있습니다. 모든 레코드를 삭제하고 싶지만 앱이 실패하면 트랜잭션을 롤백했습니다. 각 레코드를 삭제하는 데 시간이 오래 걸립니다. truncate table을 사용하고 있는지 궁금합니다. 트랜잭션을 롤백하고 실패시 데이터를 다시 가져올 수 있습니까? 자르기 테이블이 각 삭제를 트랜잭션 로그에 기록하지 않는다는 것을 알고 있지만 롤백이 작동하도록 페이지 할당 해제를 로그에 기록하는지 궁금합니다.
SQL Server에서는 트랜잭션에서 TRUNCATE를 롤백 할 수 있습니다. 언급했듯이 페이지 할당 해제를 로그에 기록합니다.
Oracle에서 TRUNCATE TABLE은 트랜잭션에서 사용할 수 없거나 더 정확하게는 롤백 할 수없는 DDL 문입니다. AFAIK, 문이 실행될 때 진행중인 트랜잭션이 있으면 트랜잭션이 커밋되고 TRUNCATE가 실행되고 취소 할 수 없습니다.
Informix에서 TRUNCATE의 동작은 약간 다릅니다. 트랜잭션에서 TRUNCATE를 사용할 수 있지만 그 후에 허용되는 유일한 명령문은 COMMIT 및 ROLLBACK입니다.
다른 DBMS는 TRUNCATE TABLE의 동작에 대한 고유 한 해석을 가지고있을 것입니다.
참조 URL : https://stackoverflow.com/questions/1522931/truncate-table-within-transaction
반응형
'programing' 카테고리의 다른 글
IntelliJ의 멋진 ≠ (같지 않음) 연산자 활성화 (0) | 2021.01.15 |
---|---|
Django-해당 테이블 없음 : main.auth_user__old (0) | 2021.01.15 |
malloc 구현은 해제 된 메모리를 시스템에 반환합니까? (0) | 2021.01.15 |
멤버 이니셜 라이저에서 'this'를 사용할 수없는 이유는 무엇입니까? (0) | 2021.01.15 |
neo4j의 노드 식별자 (0) | 2021.01.15 |