我正在处理一个任务,需要使用sqlite进行事务处理。这是我遇到困难的部分:
打开数据库并启动一个事务。使用该事务调用读取所有区域的函数,然后在它返回时提交该事务
由于我只查询数据库而不插入/更新,因此我认为我不需要在设置事务方面做太多工作。这是我的处理方式:
database, _ := sql.Open("sqlite3", "./world.db")
tx, _ := database.Begin()
rows, err := database.Query("SELECT id, name FROM zones")
if err != nil {
tx.Rollback()
} else {
defer tx.Commit()
}
然而,由于查询中没有使用交易tx
,我不知道如何将其传递给函数,因此我认为我的查询设置有误。我认为我需要在查询中以某种方式使用交易,可能是类似于tx.Query()
的东西,但目前我束手无策。