mirror of
https://github.com/astaxie/beego.git
synced 2024-11-21 22:50:56 +00:00
fix:return error when calling `InsertOrUpdate
` is successful with string primary key
This commit is contained in:
parent
d6a2621b3c
commit
7ce0fde171
@ -486,7 +486,7 @@ func (d *dbBase) InsertValue(q dbQuerier, mi *modelInfo, isMulti bool, names []s
|
||||
return res.RowsAffected()
|
||||
}
|
||||
|
||||
lastInsertId, err:=res.LastInsertId()
|
||||
lastInsertId, err := res.LastInsertId()
|
||||
if err != nil {
|
||||
DebugLog.Println("[WARN] return LastInsertId error:", err)
|
||||
}
|
||||
@ -591,7 +591,12 @@ func (d *dbBase) InsertOrUpdate(q dbQuerier, mi *modelInfo, ind reflect.Value, a
|
||||
if isMulti {
|
||||
return res.RowsAffected()
|
||||
}
|
||||
return res.LastInsertId()
|
||||
|
||||
lastInsertId, err := res.LastInsertId()
|
||||
if err != nil {
|
||||
DebugLog.Println("[WARN] return LastInsertId error:", err)
|
||||
}
|
||||
return lastInsertId, nil
|
||||
}
|
||||
return 0, err
|
||||
}
|
||||
|
@ -164,7 +164,12 @@ func (d *dbBaseMysql) InsertOrUpdate(q dbQuerier, mi *modelInfo, ind reflect.Val
|
||||
if isMulti {
|
||||
return res.RowsAffected()
|
||||
}
|
||||
return res.LastInsertId()
|
||||
|
||||
lastInsertId, err := res.LastInsertId()
|
||||
if err != nil {
|
||||
DebugLog.Println("[WARN] return LastInsertId error:", err)
|
||||
}
|
||||
return lastInsertId, nil
|
||||
}
|
||||
return 0, err
|
||||
}
|
||||
|
@ -2528,19 +2528,33 @@ func TestInsertOrUpdate(t *testing.T) {
|
||||
|
||||
func TestStrPkInsert(t *testing.T) {
|
||||
RegisterModel(new(StrPk))
|
||||
pk := `1`
|
||||
value := `StrPkValues(*56`
|
||||
strPk := &StrPk{
|
||||
Id: "1",
|
||||
Id: pk,
|
||||
Value: value,
|
||||
}
|
||||
|
||||
var err error
|
||||
_, err = dORM.Insert(strPk)
|
||||
throwFailNow(t, AssertIs(err, nil))
|
||||
|
||||
|
||||
var vForTesting StrPk
|
||||
err = dORM.QueryTable(new(StrPk)).Filter(`id`, `1`).One(&vForTesting)
|
||||
err = dORM.QueryTable(new(StrPk)).Filter(`id`, pk).One(&vForTesting)
|
||||
throwFailNow(t, AssertIs(err, nil))
|
||||
throwFailNow(t, AssertIs(vForTesting.Value, value))
|
||||
|
||||
value2 := `s8s5da7as`
|
||||
strPkForUpsert := &StrPk{
|
||||
Id: pk,
|
||||
Value: value2,
|
||||
}
|
||||
_, err = dORM.InsertOrUpdate(strPkForUpsert, `id`)
|
||||
throwFailNow(t, AssertIs(err, nil))
|
||||
|
||||
var vForTesting2 StrPk
|
||||
err = dORM.QueryTable(new(StrPk)).Filter(`id`, pk).One(&vForTesting2)
|
||||
throwFailNow(t, AssertIs(err, nil))
|
||||
throwFailNow(t, AssertIs(vForTesting2.Value, value2))
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user