You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
When calling Exec() with multiple statements, we'd like to be able to access LastInsertId and RowsAffected for all statements, not just the last one.
The motivating use case is performing batches of UPDATE statements with minimal roundtrips, while determining the result of each separately.
Example code
My PR to implement this exposes additional methods on mysqlResult, which is accessible when querying with sql.Conn.Raw() using a new mysql.Result interface:
conn, _:=db.Conn(ctx)
conn.Raw(func(conninterface{}) error {
ex:=conn.(driver.Execer)
res, _:=ex.Exec(` UPDATE point SET x = 1 WHERE y = 2; UPDATE point SET x = 2 WHERE y = 3; `, nil)
log.Print(res.(mysql.Result).AllRowsAffected()) // eg. {5, 10}
})
It looks like exposing the same functionality for sql.Stmt isn't possible yet, since it has no equivalent to sql.Conn.Raw().
The text was updated successfully, but these errors were encountered:
I am also having the same issue with v1.6.0. Both RowsAffected() and LastInsertId() return 0 even if the update statement succeeds. Is there any workaround for this?
I am also having the same issue with v1.6.0. Both RowsAffected() and LastInsertId() return 0 even if the update statement succeeds. Is there any workaround for this?
I just observed this issue now in RowsAffected() v1.6.0 also. In my own case, it occurred on a PreparedStatement, and the statements were not batched
Issue description
When calling Exec() with multiple statements, we'd like to be able to access LastInsertId and RowsAffected for all statements, not just the last one.
The motivating use case is performing batches of UPDATE statements with minimal roundtrips, while determining the result of each separately.
Example code
My PR to implement this exposes additional methods on
mysqlResult
, which is accessible when querying withsql.Conn.Raw()
using a newmysql.Result
interface:It looks like exposing the same functionality for
sql.Stmt
isn't possible yet, since it has no equivalent tosql.Conn.Raw()
.The text was updated successfully, but these errors were encountered: