
Session::startTransaction을 호출하면 데이터베이스 트랜잭션을 시작합니다. 이 시점에서 데이터베이스는 트랜잭션 상태로 전환되어, 데이터베이스에 대한 모든 변경은 트랜잭션 내에서 발생합니다.
startTransaction 호출 후 commit을 호출하면 트랜잭션 내의 모든 변경이 데이터베이스에 반영됩니다. 이 시점에서 트랜잭션은 종료되고, rollback은 호출되지 않습니다.
startTransaction을 호출하고 나서 rollback을 호출하면 트랜잭션 내의 모든 변경이 취소되고, 데이터베이스는 원래 상태로 돌아갑니다. 이 시점에서 commit은 호출되지 않습니다.
따라서, 트랜잭션 관리를 위해서는 다음과 같은 순서로 호출해야 합니다.
1. startTransaction을 호출하여 트랜잭션을 시작합니다.
2. 트랜잭션 내의 변경을 수행합니다.
3. commit을 호출하여 트랜잭션 내의 변경을 데이터베이스에 반영합니다.
4. rollback을 호출하여 트랜잭션 내의 변경을 취소합니다.
만약 트랜잭션 내의 변경을 취소하고 싶다면, startTransaction을 호출하고 나서 rollback을 호출하면 됩니다. 만약 트랜잭션 내의 변경을 데이터베이스에 반영하고 싶다면, startTransaction을 호출하고 나서 commit을 호출하면 됩니다.
2025-05-15 11:49