我是想从数据库获取数据,组装成insert脚本,提供给其他数据库使用
时间: 2024-03-05 13:50:12 浏览: 22
了解了您的需求,您需要将一个数据库中的数据导出为 insert 语句,然后将这些语句导入到另一个数据库中。以下是使用 Go 语言连接 MySQL 数据库,获取数据并生成 insert 语句的示例代码:
```go
package main
import (
"database/sql"
"fmt"
"log"
"strings"
_ "github.com/go-sql-driver/mysql"
)
type User struct {
ID int
Name string
Age int
}
func main() {
db, err := sql.Open("mysql", "user:password@tcp(127.0.0.1:3306)/database_name")
if err != nil {
log.Fatal(err)
}
defer db.Close()
// 查询数据
rows, err := db.Query("SELECT id, name, age FROM users")
if err != nil {
log.Fatal(err)
}
defer rows.Close()
// 处理每行数据
for rows.Next() {
var user User
err := rows.Scan(&user.ID, &user.Name, &user.Age)
if err != nil {
log.Fatal(err)
}
// 生成 insert 语句
query := fmt.Sprintf("INSERT INTO users (id, name, age) VALUES (%d, '%s', %d);", user.ID, user.Name, user.Age)
fmt.Println(query)
}
err = rows.Err()
if err != nil {
log.Fatal(err)
}
}
```
请注意,您需要替换 `user`、`password`、`127.0.0.1:3306`、`database_name` 和表列名等信息以适应您的实际情况。此代码将查询名为 `users` 的表中的所有行,并将每行数据转换为 insert 语句。请注意,此代码未考虑 SQL 注入攻击等安全问题,因此请根据需要进行修改。