修复使用 postgres 数据库时,位置参数重复,导致参数与值不对应的问题。 (#960)

* 修复使用 postgres 数据库时,位置参数重复,导致参数与值不对应的问题。

* 修复使用 postgres 数据库时,位置参数重复,导致参数与值不对应的问题。

Co-authored-by: toven <toven@advan.onaliyun.com>
master
toven tang 3 years ago committed by GitHub
parent 58874779e7
commit d179b342b2
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -125,7 +125,7 @@ func RawFieldNames(in interface{}, postgresSql ...bool) []string {
func PostgreSqlJoin(elems []string) string { func PostgreSqlJoin(elems []string) string {
b := new(strings.Builder) b := new(strings.Builder)
for index, e := range elems { for index, e := range elems {
b.WriteString(fmt.Sprintf("%s = $%d, ", e, index+1)) b.WriteString(fmt.Sprintf("%s = $%d, ", e, index+2))
} }
if b.Len() == 0 { if b.Len() == 0 {

@ -121,5 +121,5 @@ func TestBuildSqlLike(t *testing.T) {
func TestJoin(t *testing.T) { func TestJoin(t *testing.T) {
ret := PostgreSqlJoin([]string{"name", "age"}) ret := PostgreSqlJoin([]string{"name", "age"})
assert.Equal(t, "name = $1, age = $2", ret) assert.Equal(t, "name = $2, age = $3", ret)
} }

@ -33,7 +33,11 @@ func genUpdate(table Table, withCache, postgreSql bool) (string, string, error)
keyVariableSet.AddStr(key.KeyLeft) keyVariableSet.AddStr(key.KeyLeft)
} }
expressionValues = append(expressionValues, "data."+table.PrimaryKey.Name.ToCamel()) if postgreSql {
expressionValues = append([]string{"data." + table.PrimaryKey.Name.ToCamel()}, expressionValues...)
} else {
expressionValues = append(expressionValues, "data."+table.PrimaryKey.Name.ToCamel())
}
camelTableName := table.Name.ToCamel() camelTableName := table.Name.ToCamel()
text, err := util.LoadTemplate(category, updateTemplateFile, template.Update) text, err := util.LoadTemplate(category, updateTemplateFile, template.Update)
if err != nil { if err != nil {

Loading…
Cancel
Save