首页 > 解决方案 > 如何从 sqlx 获取最后插入的行的 id

问题描述

我正在使用这样的 SQLx 在表中插入一些数据

func (*RideRepositoryImpl) insert(entity interface{}, tx persistence.Transaction) (sql.Result, error) {
    ride := entity.(*model.Ride)

    placeHolders := repository.InsertPlaceholders(len(rideColumns))
    sql := fmt.Sprintf("INSERT INTO %s(%s) VALUES(%s)", TableName, strings.Join(Columns, ","), placeHolders)
    return tx.Exec(sql, ride.ID.String(), ride.DeviceIotID, ride.VehicleID.String(), ride.UserID.String(),ride.AdditionComments)
}

并像这样调用这个函数

func (p *RideRepositoryImpl) Save(ride *model.Ride, tx persistence.Transaction) error {
    return repository.Save(ride, p.insert, tx)

现在我想在保存此记录后立即获取已保存记录的 ID。有什么干净的方法可以立即做到这一点吗?

标签: sqlgosqlx

解决方案


你可能需要这个

LastInsertId()

检查此以获取更多信息如何从 sqlx 获取最后插入行的 id?


推荐阅读