code: func (db *Database) buildUpdate() string {
  	var query bytes.Buffer
  	query.WriteString(db.buildCTE())
  	query.WriteString("UPDATE ")
  
  	// Model only
  	if len(db.tables) != 1 {
  		db.panicLog("Please set a table with Model to Update")
  	}
  	query.WriteString(db.tables[0])
  	query.WriteString(" SET ")
  
  	updateSize := len(db.updateCreateFields)
  	if updateSize == 0 {
  		db.panicLog("Unable to detect fields to update")
  	}
  
  	for j, field := range db.updateCreateFields {
  		query.WriteString(handleIdentifier(field))
  		query.WriteString(" = $")
  		query.WriteString(strconv.Itoa(db.varCount))
  		db.varCount++
  		if j != updateSize-1 {
  			query.WriteString(", ")
  		}
  	}
  
  	// Where (optional)
  	if len(db.whereFields) > 0 {
  		query.WriteString(db.buildWhere())
  	}
  
  	query.WriteString(db.buildReturning())
  
  	qs := query.String()
  	db.printLog(qs)
  	return qs
  }
docs: // buildUpdate returns the generated SQL for the UPDATE statement. Panics if it can't generate a query