>백엔드 개발 >Golang >전체 SQL 트랜잭션에서 기본적으로 컨텍스트가 사용됩니까?

전체 SQL 트랜잭션에서 기본적으로 컨텍스트가 사용됩니까?

PHPz
PHPz앞으로
2024-02-05 22:45:04783검색

전체 SQL 트랜잭션에서 기본적으로 컨텍스트가 사용됩니까?

질문 내용

여기서 전체 트랜잭션이 컨텍스트를 "듣고" 있는지 궁금합니다. 컨텍스트를 사용하여 트랜잭션을 시작합니까?

으아악

아니면 각 쿼리에 컨텍스트를 명시적으로 적용합니까?

tx, _ := db.BeginTx(ctx, &sql.TxOptions{Isolation: sql.LevelSerializable})
stmt, _ := tx.Prepare("SELECT id, timeout, lang FROM client WHERE id=?")

정답


아니요. Prepare 및 기타 컨텍스트 프리 메서드에서는 context.Background를 사용하세요.

From Tx.Prepare document...

소스 코드를 확인해 보세요. 단순한 래퍼일 뿐입니다.

으아악

Tx는 db.BeginTx의 컨텍스트를 저장하지만 이는 거래에만 사용됩니다. 공유 컨텍스트는 혼란스럽고 제한적이므로 쿼리에는 사용되지 않습니다.

위 내용은 전체 SQL 트랜잭션에서 기본적으로 컨텍스트가 사용됩니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 stackoverflow.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제