다람쥐와 거래를 별도로 사용하는 방법은 이해하지만, 함께 사용하는 방법은 이해가 되지 않습니다. 언제 롤백하거나 커밋해야 합니까? 내 시도가 맞나요? 그렇지 않다면 내가 어디서 잘못됐나...
으아아아제가 이해한 바로는 postgresql에서 쿼리를 실행한 후 롤백이나 커밋을 하려고 합니다.
노력이 대단합니다. 하지만 ....runwith(db.repo.getdatabase())
在这种情况下是不正确的。因为您应该传递事务连接 tx
. 쿼리에 대한 데이터베이스 연결로 트랜잭션 개체를 사용하도록 다람쥐에게 지시합니다.
트랜잭션 연결 대신 데이터베이스 연결을 사용하는 경우 다람쥐 쿼리는 트랜잭션에 포함되지 않습니다. 각 쿼리는 개별적으로 실행되고 즉시 데이터베이스에 제출됩니다.
또한 함수가 종료되기 전에 거래가 적절하게 처리되고 완료되었는지 확인하는 defer
语句更新 rollback
和 commit
문을 사용할 수도 있습니다.
업데이트된 코드입니다..
으아아아도움이 되기를 바랍니다.
참조
위 내용은 트랜잭션과 다람쥐를 사용한 Golang postgresql 쿼리의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!