Использовать транзакции для запроса sqlite? - PullRequest
0 голосов
/ 14 февраля 2019

Я работаю над заданием, в котором мы используем транзакции с использованием 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(), но сейчас я в растерянности.

Ответы [ 2 ]

0 голосов
/ 14 февраля 2019

Просто замените database.Query на tx.Query.

Также вам не нужно использовать транзакции для операций с одним запросом.

0 голосов
/ 14 февраля 2019

Вы можете просто использовать tx.Query.Отзыв https://golang.org/pkg/database/sql/#Tx.Query.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...