github.com/systematiccaos/gorm@v1.22.6/clause/values.go (about) 1 package clause 2 3 type Values struct { 4 Columns []Column 5 Values [][]interface{} 6 } 7 8 // Name from clause name 9 func (Values) Name() string { 10 return "VALUES" 11 } 12 13 // Build build from clause 14 func (values Values) Build(builder Builder) { 15 if len(values.Columns) > 0 { 16 builder.WriteByte('(') 17 for idx, column := range values.Columns { 18 if idx > 0 { 19 builder.WriteByte(',') 20 } 21 builder.WriteQuoted(column) 22 } 23 builder.WriteByte(')') 24 25 builder.WriteString(" VALUES ") 26 27 for idx, value := range values.Values { 28 if idx > 0 { 29 builder.WriteByte(',') 30 } 31 32 builder.WriteByte('(') 33 builder.AddVar(builder, value...) 34 builder.WriteByte(')') 35 } 36 } else { 37 builder.WriteString("DEFAULT VALUES") 38 } 39 } 40 41 // MergeClause merge values clauses 42 func (values Values) MergeClause(clause *Clause) { 43 clause.Name = "" 44 clause.Expression = values 45 }