【问题标题】:How to get id of last inserted row from sqlx如何从 sqlx 获取最后插入的行的 id
【发布时间】:2021-04-10 03:26:38
【问题描述】:

我正在使用这样的 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。有什么干净的方法可以立即做到这一点吗?

【问题讨论】:

    标签: sql go sqlx


    【解决方案1】:

    你可能需要这个

    LastInsertId()
    

    查看此处了解更多信息How to get id of last inserted row from sqlx?

    【讨论】:

    • 感谢您的回答,我已经解决了这个问题,但在我的场景中,我使用的是tx.Exec,我将如何在这里使用它?
    猜你喜欢
    • 2019-05-28
    • 1970-01-01
    • 1970-01-01
    • 2014-09-10
    • 2019-11-21
    • 1970-01-01
    • 1970-01-01
    • 2014-07-07
    • 1970-01-01
    相关资源
    最近更新 更多