Open daniel-reed opened 6 years ago
func Insert(db {{$rootPkg}}.DB, r *Row) error {
const sqlstr = `INSERT INTO {{ $table }} (
{{$insertCols}}
) VALUES (
{{ template "values" $numNonPKs }}
) RETURNING id;`
err := db.QueryRow(sqlstr, {{join ((.Table.Columns.Names.Except .Table.PrimaryKeys.Names).Sprintf "r.%s") ", "}}).Scan( {{join (.Table.PrimaryKeys.Names.Sprintf "&r.%s") ", "}})
return errors.Wrap(err, "insert {{.Table.Name}}")
}
Is there a better solution?
id SERIAL PRIMARY KEY
// Insert inserts the row into the database.
func Insert(db models.DB, r *Row) error {
const sqlstr = `INSERT INTO sys_user (
username, password, salt, avatar, created_at, updated_at
) VALUES (
$1, $2, $3, $4, $5, $6
) RETURNING id;`
err := db.QueryRow(sqlstr, r.Username, r.Password, r.Salt, r.Avatar, r.CreatedAt,r.UpdatedAt).Scan(&r.ID)
return errors.Wrap(err, "insert SysUser")
}
Add
IsAutoGenerated
to Column