package main
import (
"fmt"
"log"
"time"
"gorm.io/driver/mysql"
"gorm.io/gorm"
)
var db *gorm.DB
func init() {
dsn := "root:123456@tcp(127.0.0.1:3306)/golang_db?charset=utf8mb4&parseTime=True&loc=Local"
d, err := gorm.Open(mysql.Open(dsn), &gorm.Config{})
if err != nil {
log.Fatal(err)
}
fmt.Printf("err: %v\n", err)
db = d
}
type User struct {
gorm.Model
Name string
Age int
Birthday time.Time
}
func creatTable() {
db.AutoMigrate(&User{})
}
var user = User{
Name: "Tom",
Age: 20,
Birthday: time.Now(),
}
func insert1() {
result := db.Create(&user)
fmt.Printf("result.RowsAffected: %v\n", result.RowsAffected)
fmt.Printf("user.ID: %v\n", user.ID)
}
func insert2() {
db.Select("Name", "Age", "CreatedAt").Create(&user)
}
func insert3() {
var users = []User{{Name: "jinzhu1"}, {Name: "jinzhu2"}, {Name: "jinzhu3"}}
db.Create(&users)
}
func main() {
// creatTable()
// insert1()
// insert2()
insert3()
}
2022/01/26 20:01:01 [31;1me:/golangproject/ep1/pro1/morething/test_gorm_mysql_insert.go:54 [35;1mError 1292: Incorrect datetime value: '0000-00-00' for column 'birthday' at row 1
[0m[33m[15.856ms] [34;1m[rows:0][0m INSERT INTO users
(created_at
,updated_at
,deleted_at
,name
,age
,birthday
) VALUES ('2022-01-26 20:01:01.895','2022-01-26 20:01:01.895',NULL,'jinzhu1',0,'0000-00-00 00:00:00'),('2022-01-26 20:01:01.895','2022-01-26 20:01:01.895',NULL,'jinzhu2',0,'0000-00-00 00:00:00'),('2022-01-26 20:01:01.895','2022-01-26 20:01:01.895',NULL,'jinzhu3',0,'0000-00-00 00:00:00')
试一下这个?
type User struct {
}