Hello,
I am using sqlx to insert multiple rows to mysql database tables which have foreign key releations. Could you please review the code below? I am not sure where to use rollbacks. Is this a good practice ?
tx, err := db.Begin()
if err != nil {
return
}
r, err := tx.Exec("INSERT INTO licenses ...")
if err != nil {
tx.Rollback() //shoul i use rollback here ?
return
}
licenseId, _ := r.LastInsertId()
r, err = tx.Exec("INSERT INTO companies ...", licenseId, ...)
if err != nil {
tx.Rollback()
return
}
companyId, _ := r.LastInsertId()
r, err = tx.Exec("INSERT INTO users ...", companyId, ...)
if err != nil {
tx.Rollback()
return
}
err = tx.Commit()
if err != nil {
tx.Rollback() //shoul i use rollback here ?
return
}
Best regards…