增删改查
1. 插入数据
user := User{
Username:"zhangsan",
Password:"123456",
CreateTime:time.Now().Unix(),
}
db.Create(&user)
user.ID // 返回插入数据的主键
result.Error // 返回 error
result.RowsAffected // 返回插入记录的条数
1.1 用指定的字段创建:
db.Select("username","password").Create(&user)
1.2 忽略字段
db.Omit("username").Create(&user)
1.3 批量插入:
var users = []User{
{
Username: "jinzhu1"}, {
Username: "jinzhu2"}, {
Username: "jinzhu3"}}
db.Create(&users)
for _, user := range users {
user.ID // 1,2,3
}
使用 CreateInBatches
分批创建时,你可以指定每批的数量,例如:
var users = []User{
{
Username: "jinzhu_1"}, ...., {
Username: "jinzhu_10000"}}
// 数量为 100
db.CreateInBatches(users, 100)
1.4 使用map创建:
db.Model(&User{
}).Create(map[string]interface{
}{
"Name": "jinzhu", "Age": 18,
})
// batch insert from `[]map[string]interface{}{}`
db.Model(&User{
}).Create([]map[string]interface{
}{
{
"Name": "jinzhu_1", "Age": 18},
{
"Name": "jinzhu_2", "Age": 20},
})
map创建注意,主键不会被填充。
1.5 sql表达式:
DB.Model(&User{
}).Create(