我必须在创建记录后保存记录才能使用 Gorm 将其保存在 SQLITE 中吗?
Must I save a record after creating it to save it in SQLITE with Gorm?
我在 Gorm 中使用 SQLITE 数据库,需要保存一条新记录。
我遇到的问题是,当我创建记录并重新启动程序时,在数据库中找不到该记录。创建记录后是否需要保存?
您不必 Save
您已经传递给 Create
的记录。
您可以通过 运行 以下内容进行测试:
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: { ... }
我在 Gorm 中使用 SQLITE 数据库,需要保存一条新记录。
我遇到的问题是,当我创建记录并重新启动程序时,在数据库中找不到该记录。创建记录后是否需要保存?
您不必 Save
您已经传递给 Create
的记录。
您可以通过 运行 以下内容进行测试:
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: { ... }