go mysql 事务_Go 语言操作 MySQL 之 事务操作
时间: 2024-01-03 14:04:58 浏览: 28
在 Go 语言中,可以使用库中提供的 `Begin`、`Commit` 和 `Rollback` 方法来实现 MySQL 的事务操作。
下面是一个简单的事务操作示例:
```go
// 打开数据库连接
db, err := sql.Open("mysql", "user:password@tcp(host:port)/database")
if err != nil {
log.Fatal(err)
}
defer db.Close()
// 开始事务
tx, err := db.Begin()
if err != nil {
log.Fatal(err)
}
// 执行 SQL 语句
_, err = tx.Exec("INSERT INTO users (name, age) VALUES (?, ?)", "Alice", 20)
if err != nil {
// 回滚事务
tx.Rollback()
log.Fatal(err)
}
// 提交事务
err = tx.Commit()
if err != nil {
log.Fatal(err)
}
```
在上面的示例中,首先使用 `sql.Open` 方法打开数据库连接,然后使用 `db.Begin` 方法开始一个事务。接着,使用 `tx.Exec` 方法执行 SQL 语句,如果出现错误,则使用 `tx.Rollback` 方法回滚事务。最后,使用 `tx.Commit` 方法提交事务。
需要注意的是,在事务中执行的 SQL 语句必须是支持事务的语句,例如 `INSERT`、`UPDATE`、`DELETE` 等。如果执行的 SQL 语句不支持事务,那么事务操作将会被忽略。