Go语言操作MySQL数据库更新数据,主要使用database/sql包和相应的数据库驱动。以下是一些更新数据的技巧:
以下是一个使用Go语言和MySQL数据库更新数据的示例代码:
package main import ( "database/sql" _ "github.com/go-sql-driver/mysql" "fmt" ) func main() { db, err := sql.Open("mysql", "username:password@tcp(localhost:3306)/dbname") if err != nil { panic(err) } defer db.Close() // 更新单条记录 res, err := db.Exec("UPDATE users SET name = ? WHERE id = ?", "new_name", 1) if err != nil { panic(err) } affected, err := res.RowsAffected() if err != nil { panic(err) } fmt.Printf("Updated %d record(s)\n", affected) // 批量更新多条记录 stmt, err := db.Prepare("UPDATE users SET name = ? WHERE id IN (?)") if err != nil { panic(err) } defer stmt.Close() ids := []int{1, 2, 3} names := []string{"new_name1", "new_name2", "new_name3"} for i := range ids { _, err := stmt.Exec(names[i], ids[i]) if err != nil { panic(err) } } // 使用事务 tx, err := db.Begin() if err != nil { panic(err) } defer tx.Rollback() _, err = tx.Exec("UPDATE users SET balance = balance - ? WHERE id = ?", 100, 1) if err != nil { tx.Rollback() panic(err) } _, err = tx.Exec("UPDATE orders SET status = ? WHERE user_id = ?", "completed", 1) if err != nil { tx.Rollback() panic(err) } tx.Commit() } 请注意,上述示例代码中的username、password、localhost、3306、dbname等值需要替换为你自己的MySQL数据库配置信息。同时,示例代码中的错误处理比较简单,仅用于演示目的,实际应用中你可能需要更完善的错误处理逻辑。