programing

ALTER TABLE과의 트랜잭션.구현 방법

projobs 2022. 10. 21. 21:46
반응형

ALTER TABLE과의 트랜잭션.구현 방법

테이블, 필드 등을 작성하는 쿼리 그룹이 있습니다.요청 그룹이 모두 실행되어야 하는 메커니즘 또는 오류가 모두 취소된 경우 어떻게 구현합니까?즉, (암묵적으로 커밋된) ALTER TABLE 쿼리와의 트랜잭션성 원칙입니다.

커밋과 롤백에 대해 이야기하고 있습니다.

그러나 일반 SQL과 DML(CREATE/ALTER/DROP 등)을 혼합하는 경우 DML 명령어는 실행의 일부로 암묵적인 COMMIT를 가집니다.따라서 일반적인 삽입/업데이트/삭제 유형의 쿼리와 혼재할 경우 문제가 발생할 수 있습니다.

트랜잭션 DML은 MySQL 8.0까지 사용할 수 없습니다.이 버전에서는 InnoDB 테이블에 저장된 "데이터 사전"이 있습니다.(필요한 부트스트랩은 생각하고 싶지 않습니다!)DD는 적어도 이론적으로는ROLLBACK다음과 같은 DDL 액션의ALTER그리고.DROP TABLE. 8.0 문서를 검토하여 필요에 따라 충분한지 확인합니다.

과거에는(8.0 이전) 많은 DML 작업이 적어도 합리적인 "충돌 안전"이었습니다.예를 들어,ALTER테이블을 복사한 후 새 테이블을 빠르게 교환할 때 사용합니다.이를 통해 데이터 센터에서의 크래시(crash)로부터 회복할 수 있는 꽤 좋은 방법이 제공되었습니다.ALTER.

에는 많은 큰 개선이 있었다.ALTER5.6 이후입니다.그 전에, 정말 "즉각적인" 유일한 변경은 옵션 추가였다.ENUM, 그리고 그것은 경고가 있었다.아직 테이블 재작성이 필요한 부분이 있습니다.예를 들어, 이 테이블의 변경 등,PRIMARY KEY.

DML 조작은 최소한으로 억제할 필요가 있습니다.DML 조작은 빈번하게 사용하도록 설계되어 있지 않습니다.

언급URL : https://stackoverflow.com/questions/59846850/transactional-with-alter-table-how-to-implement

반응형