MySQL의 중첩 트랜잭션
다른 특정 데이터베이스 관리 시스템과 달리 MySQL은 기본적으로 중첩 트랜잭션을 지원하지 않습니다. 이는 기존 트랜잭션 내에서 새 트랜잭션을 생성할 수 없음을 의미합니다. 그러나 MySQL에서 사용되는 널리 사용되는 스토리지 엔진인 MySQL InnoDB는 저장점을 사용하여 중첩된 트랜잭션과 같은 동작을 관리하기 위한 솔루션을 제공합니다.
SAVEPOINTS in InnoDB
저장점을 사용하면 트랜잭션 내에서 임시 마일스톤을 생성할 수 있습니다. 저장점을 만들고 이름을 지정한 다음 해당 저장점으로 롤백하여 이후에 발생한 모든 작업을 실행 취소할 수 있습니다. 이는 중첩된 트랜잭션과 유사한 수준의 세분성과 유연성을 제공합니다.
SAVEPOINT 사용 방법
MySQL에서 저장점을 사용하려면 다음 단계를 따르세요.
예
다음 예를 고려하십시오.
CREATE TABLE t_test (id INT NOT NULL PRIMARY KEY) ENGINE=InnoDB; START TRANSACTION; INSERT INTO t_test VALUES (1); SELECT * FROM t_test; id --- 1 SAVEPOINT tran2; INSERT INTO t_test VALUES (2); SELECT * FROM t_test; id --- 1 2 ROLLBACK TO tran2; SELECT * FROM t_test; id --- 1 ROLLBACK; SELECT * FROM t_test; id ---
이 예에서는 저장점으로 롤백하는 방법을 보여줍니다. (tran2) 그런 다음 전체 트랜잭션을 롤백합니다.
위 내용은 MySQL은 저장점을 사용하여 중첩 트랜잭션을 어떻게 처리합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!