sql - 如何从 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。有什么干净的方法可以立即做到这一点吗?
解决方案
推荐阅读
- anylogic - 检查等待块中的代理副本,然后释放它们
- android - 错误:未知问题 ID“UseAppTint”[LintError]
- swift - 在 Swift 5 中,如何将浮点数转换为本地化字符串以便在文本字段中显示?
- python - 在 matplotlib 中绘制股票图表的特定时间间隔
- python-3.x - 如何用python连接多个图像(图块)以形成单个图像?
- sql-server - 当我将 DACPAC 作为发布管道的一部分部署时,如何防止在 Azure DevOps 中部署数据库触发器?
- performance - Swipview 在刷卡时滞后
- javascript - WKWebView 将按钮添加到搜索字段
- google-apps-script - 在 Google 表格中,有没有办法使用 Apps 脚本捕获导入文件的文件信息(名称/ID/URL)?
- prolog - 如何分隔 min() 谓词序言中的值