61
vendor/github.com/gocraft/dbr/delete.go
generated
vendored
Normal file
61
vendor/github.com/gocraft/dbr/delete.go
generated
vendored
Normal file
@@ -0,0 +1,61 @@
|
||||
package dbr
|
||||
|
||||
// DeleteStmt builds `DELETE ...`
|
||||
type DeleteStmt struct {
|
||||
raw
|
||||
|
||||
Table string
|
||||
|
||||
WhereCond []Builder
|
||||
}
|
||||
|
||||
// Build builds `DELETE ...` in dialect
|
||||
func (b *DeleteStmt) Build(d Dialect, buf Buffer) error {
|
||||
if b.raw.Query != "" {
|
||||
return b.raw.Build(d, buf)
|
||||
}
|
||||
|
||||
if b.Table == "" {
|
||||
return ErrTableNotSpecified
|
||||
}
|
||||
|
||||
buf.WriteString("DELETE FROM ")
|
||||
buf.WriteString(d.QuoteIdent(b.Table))
|
||||
|
||||
if len(b.WhereCond) > 0 {
|
||||
buf.WriteString(" WHERE ")
|
||||
err := And(b.WhereCond...).Build(d, buf)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
// DeleteFrom creates a DeleteStmt
|
||||
func DeleteFrom(table string) *DeleteStmt {
|
||||
return &DeleteStmt{
|
||||
Table: table,
|
||||
}
|
||||
}
|
||||
|
||||
// DeleteBySql creates a DeleteStmt from raw query
|
||||
func DeleteBySql(query string, value ...interface{}) *DeleteStmt {
|
||||
return &DeleteStmt{
|
||||
raw: raw{
|
||||
Query: query,
|
||||
Value: value,
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
// Where adds a where condition
|
||||
func (b *DeleteStmt) Where(query interface{}, value ...interface{}) *DeleteStmt {
|
||||
switch query := query.(type) {
|
||||
case string:
|
||||
b.WhereCond = append(b.WhereCond, Expr(query, value...))
|
||||
case Builder:
|
||||
b.WhereCond = append(b.WhereCond, query)
|
||||
}
|
||||
return b
|
||||
}
|
||||
Reference in New Issue
Block a user