作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我已经从导入了驱动程序
github.com/go-sql-driver/mysql
并已成功建立与数据库的连接。
我只想开始创建表并能够更新,获取和删除表中的数据
我见过的其他资源似乎跳过了这一部分或不清楚(它们似乎开始获取数据,我就像..数据从何而来,它们是如何创建的),我只是想弄清楚解释谢谢。
// main.go
package main
import (
"database/sql"
"fmt"
_ "github.com/go-sql-driver/mysql"
)
func main() {
db, err := sql.Open("mysql", "user:password@tcp(127.0.0.1:3306)/dbname")
if err != nil {
panic(err)
}
defer db.Close()
}
最佳答案
您可以使用Exec
提供的 Query
, QueryRow
和 *sql.DB
方法将SQL命令发送到连接的数据库。
func main() {
db, err := sql.Open("mysql", "user:password@tcp(127.0.0.1:3306)/dbname")
if err != nil {
panic(err)
} else if err = db.Ping(); err != nil {
panic(err)
}
defer db.Close()
_, err := db.Exec("CREATE TABLE IF NOT EXISTS mytable (id BIGINT NOT NULL AUTO_INCREMENT PRIMARY KEY, some_text TEXT NOT NULL)")
if err != nil {
panic(err)
}
// Create
res, err := db.Exec("INSERT INTO mytable (some_text) VALUES (?)", "hello world")
if err != nil {
panic(err)
}
// get the id of the newly inserted record
id, err := res.LastInsertId()
if err != nil {
panic(err)
}
// Read
var someText string
row := db.QueryRow("SELECT some_text FROM mytable WHERE id = ? LIMIT 1", id)
if err := row.Scan(&someText); err != nil {
panic(err)
}
fmt.Println(someText)
// Update
_, err = db.Exec("UPDATE mytable SET some_text = ? WHERE id = ?", "Hello, 世界", id)
if err != nil {
panic(err)
}
// Delete
_, err = db.Exec("DELETE FROM mytable WHERE id = ?", id)
if err != nil {
panic(err)
}
}
关于mysql - 如何在Go中创建MySQL数据库(表)并执行CRUD操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61789889/
我是一名优秀的程序员,十分优秀!