我正在使用Gorm的SQLITE数据库,需要保存一条新记录。
我遇到的问题是,当我创建记录并重新启动程序时,数据库中找不到该记录。创建记录后是否需要保存记录?
Gorm文档中给出的示例程序不保存记录。
您不必将已经传递给Create
的记录Save
您可以通过运行以下命令来测试:
main.go
package main
import (
"fmt"
"gorm.io/driver/sqlite"
"gorm.io/gorm"
)
type Product struct {
gorm.Model
Code string
Price uint
}
func main() {
db, err := gorm.Open(sqlite.Open("test.db"), &gorm.Config{})
if err != nil {
panic("failed to connect database")
}
db.AutoMigrate(&Product{})
var product Product
if db.First(&product).Error == gorm.ErrRecordNotFound {
fmt.Println("no product record, creating now...")
db.Create(&Product{Code: "D42", Price: 100})
} else {
fmt.Printf("product record found: %v", product)
}
}
go run main.go
no product record, creating now...
go run main.go
product record found: { ... }