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