Предполагается, что база данных, совместимая с MariaDB (AWS Aurora RDS) с настройками по умолчанию, которая включает с включенной автоматической фиксацией , если лямбда-функция была прервана через три секунды , выполнив транзакцию, которая занимает более пять секунд , например
tx, err := h.db.Begin()
if err != nil {
log.WithError(err).Error("failed to start transaction")
}
res, execErr := tx.Exec(fmt.Sprintf("UPDATE testtable SET val = %d WHERE id = 1; SELECT SLEEP(5.5);", time.Now().Unix()))
if execErr != nil {
log.WithError(err).Error("rolling back")
err = tx.Rollback()
if err != nil {
log.WithError(err).Error("failed to roll back")
}
}
if err := tx.Commit(); err != nil {
log.WithError(err).Error("failed to commit")
}
Каким будет результат?Транзакция не была совершена?
Я использую Go MySQL Driver v1.3.0-84-g6be42e0, кстати.Я также сделал видео, показывающее мои результаты , но мне интересно, правильно ли это, так как я не понимаю, как драйвер мог выполнить откат .