亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

錯誤 SQL 在集合中沒有結果行。當我從郵遞員使用 json 輸入時,它的錯誤結果是一行

錯誤 SQL 在集合中沒有結果行。當我從郵遞員使用 json 輸入時,它的錯誤結果是一行

Go
SMILET 2022-10-17 19:33:24
var (    newServices                                                                                                             *models.UpsertIntoServices    companyCode, serviceCode, approvalEmail, approvalName, coApprovalEmail, coApprovalName, technicianEmail, technicianName string    departmentApproval, companyApproval, xapiensApproval, isActual, isMinus                                                 bool    id                                                                                                                      uint)tx, txErr := s.db.Begin()if txErr != nil {    return newServices, txErr}qapi := `insert into company_services     (company_code, service_code, department_approval, company_approval, xapiens_approval, approval_email, approval_name, co_approval_email,technician_email, co_approval_name, technician_name, is_actual, is_minus)    values         ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12, $13)    on conflict (company_code, service_code)do update set company_code =excluded.company_code, service_code =excluded.service_code;`//insert data into new_servicessqlErr := tx.QueryRowContext(ctx, qapi, data.CompanyCode, data.ServiceCode, data.DepartmentApproval, data.CompanyApproval, data.XapiensApproval, data.ApprovalEmail, data.ApprovalName, data.CoApprovalEmail, data.TechnicianEmail, data.CoApprovalName, data.TechnicianName, data.IsActual, data.IsMinus).Scan(    &id,    &companyCode,    &serviceCode,    &departmentApproval,    &companyApproval,    &xapiensApproval,    &approvalEmail,    &approvalName,    &coApprovalEmail,    &technicianEmail,    &coApprovalName,    &technicianName,    &isActual,    &isMinus,)// checking if its rows has any errors but no result hereif sqlErr != nil {    tx.Rollback()    log.Println("sql Error on Repository Upsert Flagging", sqlErr)    return newServices, sqlErr}// commit transaction querytxErr = tx.Commit()if txErr != nil {    return newServices, txErr}
查看完整描述

1 回答

?
夢里花落0921

TA貢獻1772條經驗 獲得超6個贊

使用 ExecContext 執行插入/更新查詢。試試下面的代碼


 var (

    newServices                                                                                                             *models.UpsertIntoServices

    companyCode, serviceCode, approvalEmail, approvalName, coApprovalEmail, coApprovalName, technicianEmail, technicianName string

    departmentApproval, companyApproval, xapiensApproval, isActual, isMinus                                                 bool

    id                                                                                                                      uint

)


tx, txErr := s.db.Begin()

if txErr != nil {

    return newServices, txErr

}


qapi := `

insert into company_services 

    (company_code, service_code, department_approval, company_approval, xapiens_approval, approval_email, approval_name, co_approval_email,technician_email, co_approval_name, technician_name, is_actual, is_minus)

    values 

        ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10, $11, $12, $13)

    on conflict (company_code, service_code)

do update set company_code =excluded.company_code, service_code =excluded.service_code;

`


//insert data into new_services

result, sqlErr := tx.ExecContext(ctx, qapi, data.CompanyCode, data.ServiceCode, data.DepartmentApproval, data.CompanyApproval, data.XapiensApproval, data.ApprovalEmail, data.ApprovalName, data.CoApprovalEmail, data.TechnicianEmail, data.CoApprovalName, data.TechnicianName, data.IsActual, data.IsMinus)


// checking if its rows has any errors but no result here

if sqlErr != nil {

    tx.Rollback()

    log.Println("sql Error on Repository Upsert Flagging", sqlErr)

    return newServices, sqlErr

}

//You can know lastInsertId and affectedRows

lastInsertId, _ := result.LastInsertId()

affectedRowsCnt,_ :=  result.RowsAffected()

fmt.Println(lastInsertId,affectedRowsCnt)


// commit transaction query

txErr = tx.Commit()

if txErr != nil {

    return newServices, txErr

}


查看完整回答
反對 回復 2022-10-17
  • 1 回答
  • 0 關注
  • 226 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號