我必须在创建记录后保存记录才能使用 Gorm 将其保存在 SQLITE 中吗?

Must I save a record after creating it to save it in SQLITE with Gorm?

我在 Gorm 中使用 SQLITE 数据库,需要保存一条新记录。

我遇到的问题是,当我创建记录并重新启动程序时,在数据库中找不到该记录。创建记录后是否需要保存?

The example program given in the Gorm documentation 不保存记录。

您不必 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: { ... }