修复SysLocker无法写入新Key的问题

This commit is contained in:
刘祥超
2023-07-26 10:18:52 +08:00
parent 0a3c740502
commit f4e4f32f9c
2 changed files with 20 additions and 1 deletions

View File

@@ -157,7 +157,7 @@ func (this *SysLockerDAO) Increase(tx *dbs.Tx, key string, defaultValue int64) (
} }
// combine statements to make increasing faster // combine statements to make increasing faster
colValue, err := tx.FindCol(0, "INSERT INTO `"+this.Table+"` (`key`, `version`) VALUES ('"+key+"', "+types.String(defaultValue)+") ON DUPLICATE KEY UPDATE `version`=`version`+"+types.String(sysLockerStep)+"; SELECT `version` FROM `"+this.Table+"` WHERE `key`='"+key+"'") colValue, err := tx.FindCol(0, "INSERT INTO `"+this.Table+"` (`key`, `version`) VALUES ('"+key+"', "+types.String(defaultValue+sysLockerStep)+") ON DUPLICATE KEY UPDATE `version`=`version`+"+types.String(sysLockerStep)+"; SELECT `version` FROM `"+this.Table+"` WHERE `key`='"+key+"'")
if err != nil { if err != nil {
if CheckSQLErrCode(err, 1064 /** syntax error **/) { if CheckSQLErrCode(err, 1064 /** syntax error **/) {
// continue to use seperated query // continue to use seperated query

View File

@@ -43,6 +43,25 @@ func TestSysLocker_Increase_SQL(t *testing.T) {
t.Log("after:", v) t.Log("after:", v)
} }
func TestSysLocker_Increase_New_Key(t *testing.T) {
var key = "KEY" + types.String(time.Now().Unix())
var dao = NewSysLockerDAO()
value, err := dao.Read(nil, key)
if err != nil {
t.Fatal(err)
}
t.Log("before:", value)
for i := 0; i < 2; i++ {
v, err := dao.Increase(nil, key, 0)
if err != nil {
t.Log("err:", err)
return
}
t.Log("after:", v)
}
}
func TestSysLocker_Increase_Cache(t *testing.T) { func TestSysLocker_Increase_Cache(t *testing.T) {
var dao = NewSysLockerDAO() var dao = NewSysLockerDAO()
for i := 0; i < 11; i++ { for i := 0; i < 11; i++ {