github.com/RevenueMonster/sqlike@v1.0.6/sql/dialect/mysql/replace.go (about)

     1  package mysql
     2  
     3  import (
     4  	"github.com/RevenueMonster/sqlike/sql"
     5  	sqlstmt "github.com/RevenueMonster/sqlike/sql/stmt"
     6  )
     7  
     8  // Replace :
     9  func (ms MySQL) Replace(stmt sqlstmt.Stmt, db, table string, columns []string, query *sql.SelectStmt) (err error) {
    10  	stmt.WriteString("REPLACE INTO ")
    11  	stmt.WriteString(ms.TableName(db, table) + " ")
    12  	if len(columns) > 0 {
    13  		stmt.WriteByte('(')
    14  		for i, col := range columns {
    15  			if i > 0 {
    16  				stmt.WriteByte(',')
    17  			}
    18  			stmt.WriteString(ms.Quote(col))
    19  		}
    20  		stmt.WriteByte(')')
    21  		stmt.WriteByte(' ')
    22  	}
    23  	err = ms.parser.BuildStatement(stmt, query)
    24  	if err != nil {
    25  		return
    26  	}
    27  	stmt.WriteByte(';')
    28  	return
    29  }