github.com/systematiccaos/gorm@v1.22.6/clause/update.go (about) 1 package clause 2 3 type Update struct { 4 Modifier string 5 Table Table 6 } 7 8 // Name update clause name 9 func (update Update) Name() string { 10 return "UPDATE" 11 } 12 13 // Build build update clause 14 func (update Update) Build(builder Builder) { 15 if update.Modifier != "" { 16 builder.WriteString(update.Modifier) 17 builder.WriteByte(' ') 18 } 19 20 if update.Table.Name == "" { 21 builder.WriteQuoted(currentTable) 22 } else { 23 builder.WriteQuoted(update.Table) 24 } 25 } 26 27 // MergeClause merge update clause 28 func (update Update) MergeClause(clause *Clause) { 29 if v, ok := clause.Expression.(Update); ok { 30 if update.Modifier == "" { 31 update.Modifier = v.Modifier 32 } 33 if update.Table.Name == "" { 34 update.Table = v.Table 35 } 36 } 37 clause.Expression = update 38 }