Your Question
I have a code:
package main
import (
"gorm.io/driver/sqlite" // v1.2.4
"gorm.io/gorm" // v1.22.3
"gorm.io/gorm/logger"
)
type User struct {
gorm.Model
Name string
}
func main() {
db, _ := gorm.Open(sqlite.Open("file:test.db"), &gorm.Config{
Logger: logger.Default.LogMode(logger.Info),
})
defer func() {
conn, _ := db.DB()
conn.Close()
}()
db.Table("users").AutoMigrate(&User{})
db.Create(&User{Name: "TestName"}) // INSERT INTO....
}
The last line (db.Create(...)) generates a query:
INSERT INTO `users` (`created_at`,`updated_at`,`deleted_at`,`name`) VALUES ("2021-12-06 19:01:21.778","2021-12-06 19:01:21.778",NULL,"TestName") RETURNING `id`
How to modify this code so that the last line generates REPLACE INTO instead of INSERT INTO for a SQLite case without using raw sql query?
The document you expected this should be explained
Expected answer
Comment From: mmm713
so sad gorm still cannot do it today and has to perform tx when running batch