The response for
ExecuteBatchDml][google.spanner.v1.Spanner.ExecuteBatchDml].
Contains a list of ResultSet][google.spanner.v1.ResultSet]
messages, one for each DML statement that has successfully executed,
in the same order as the statements in the request. If a statement
fails, the status in the response body identifies the cause of the
failure.
To check for DML statements that failed, use the following approach:
Check the status in the response message. The
google.rpc.Code][google.rpc.Code] enum value OK indicates
that all statements were executed successfully.
If the status was not OK, check the number of result sets in
the response. If the response contains NResultSet][google.spanner.v1.ResultSet] messages, then statement
N+1 in the request failed.
Example 1:
Request: 5 DML statements, all executed successfully.
Response: 5 ResultSet][google.spanner.v1.ResultSet] messages,
with the status OK.
Example 2:
Request: 5 DML statements. The third statement has a syntax
error.
Response: 2 ResultSet][google.spanner.v1.ResultSet] messages,
and a syntax error (INVALID_ARGUMENT) status. The number of
ResultSet][google.spanner.v1.ResultSet] messages indicates that
the third statement failed, and the fourth and fifth statements
were not executed.
Attributes
Name
Description
result_sets
MutableSequence[google.cloud.spanner_v1.types.ResultSet]
One ResultSet][google.spanner.v1.ResultSet] for each
statement in the request that ran successfully, in the same
order as the statements in the request. Each
ResultSet][google.spanner.v1.ResultSet] does not contain
any rows. The
ResultSetStats][google.spanner.v1.ResultSetStats] in each
ResultSet][google.spanner.v1.ResultSet] contain the number
of rows modified by the statement.
Only the first ResultSet][google.spanner.v1.ResultSet] in
the response contains valid
ResultSetMetadata][google.spanner.v1.ResultSetMetadata].
status
google.rpc.status_pb2.Status
If all DML statements are executed successfully, the status
is OK. Otherwise, the error status of the first failed
statement.
precommit_token
google.cloud.spanner_v1.types.MultiplexedSessionPrecommitToken
Optional. A precommit token will be included if the
read-write transaction is on a multiplexed session. The
precommit token with the highest sequence number from this
transaction attempt should be passed to the
Commit][google.spanner.v1.Spanner.Commit] request for this
transaction. This feature is not yet supported and will
result in an UNIMPLEMENTED error.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Hard to understand","hardToUnderstand","thumb-down"],["Incorrect information or sample code","incorrectInformationOrSampleCode","thumb-down"],["Missing the information/samples I need","missingTheInformationSamplesINeed","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-09-04 UTC."],[],[],null,["# Class ExecuteBatchDmlResponse (3.57.0)\n\nVersion latestkeyboard_arrow_down\n\n- [3.57.0 (latest)](/python/docs/reference/spanner/latest/google.cloud.spanner_v1.types.ExecuteBatchDmlResponse)\n- [3.56.0](/python/docs/reference/spanner/3.56.0/google.cloud.spanner_v1.types.ExecuteBatchDmlResponse)\n- [3.55.0](/python/docs/reference/spanner/3.55.0/google.cloud.spanner_v1.types.ExecuteBatchDmlResponse)\n- [3.54.0](/python/docs/reference/spanner/3.54.0/google.cloud.spanner_v1.types.ExecuteBatchDmlResponse)\n- [3.53.0](/python/docs/reference/spanner/3.53.0/google.cloud.spanner_v1.types.ExecuteBatchDmlResponse)\n- [3.52.0](/python/docs/reference/spanner/3.52.0/google.cloud.spanner_v1.types.ExecuteBatchDmlResponse)\n- [3.51.0](/python/docs/reference/spanner/3.51.0/google.cloud.spanner_v1.types.ExecuteBatchDmlResponse)\n- [3.50.1](/python/docs/reference/spanner/3.50.1/google.cloud.spanner_v1.types.ExecuteBatchDmlResponse)\n- [3.46.0](/python/docs/reference/spanner/3.46.0/google.cloud.spanner_v1.types.ExecuteBatchDmlResponse)\n- [3.45.0](/python/docs/reference/spanner/3.45.0/google.cloud.spanner_v1.types.ExecuteBatchDmlResponse)\n- [3.44.0](/python/docs/reference/spanner/3.44.0/google.cloud.spanner_v1.types.ExecuteBatchDmlResponse)\n- [3.43.0](/python/docs/reference/spanner/3.43.0/google.cloud.spanner_v1.types.ExecuteBatchDmlResponse)\n- [3.42.0](/python/docs/reference/spanner/3.42.0/google.cloud.spanner_v1.types.ExecuteBatchDmlResponse)\n- [3.41.0](/python/docs/reference/spanner/3.41.0/google.cloud.spanner_v1.types.ExecuteBatchDmlResponse)\n- [3.40.1](/python/docs/reference/spanner/3.40.1/google.cloud.spanner_v1.types.ExecuteBatchDmlResponse)\n- [3.39.0](/python/docs/reference/spanner/3.39.0/google.cloud.spanner_v1.types.ExecuteBatchDmlResponse)\n- [3.38.0](/python/docs/reference/spanner/3.38.0/google.cloud.spanner_v1.types.ExecuteBatchDmlResponse)\n- [3.37.0](/python/docs/reference/spanner/3.37.0/google.cloud.spanner_v1.types.ExecuteBatchDmlResponse)\n- [3.36.0](/python/docs/reference/spanner/3.36.0/google.cloud.spanner_v1.types.ExecuteBatchDmlResponse)\n- [3.35.1](/python/docs/reference/spanner/3.35.1/google.cloud.spanner_v1.types.ExecuteBatchDmlResponse)\n- [3.34.0](/python/docs/reference/spanner/3.34.0/google.cloud.spanner_v1.types.ExecuteBatchDmlResponse)\n- [3.33.0](/python/docs/reference/spanner/3.33.0/google.cloud.spanner_v1.types.ExecuteBatchDmlResponse)\n- [3.32.0](/python/docs/reference/spanner/3.32.0/google.cloud.spanner_v1.types.ExecuteBatchDmlResponse)\n- [3.31.0](/python/docs/reference/spanner/3.31.0/google.cloud.spanner_v1.types.ExecuteBatchDmlResponse)\n- [3.30.0](/python/docs/reference/spanner/3.30.0/google.cloud.spanner_v1.types.ExecuteBatchDmlResponse)\n- [3.29.0](/python/docs/reference/spanner/3.29.0/google.cloud.spanner_v1.types.ExecuteBatchDmlResponse)\n- [3.28.0](/python/docs/reference/spanner/3.28.0/google.cloud.spanner_v1.types.ExecuteBatchDmlResponse)\n- [3.27.1](/python/docs/reference/spanner/3.27.1/google.cloud.spanner_v1.types.ExecuteBatchDmlResponse)\n- [3.26.0](/python/docs/reference/spanner/3.26.0/google.cloud.spanner_v1.types.ExecuteBatchDmlResponse)\n- [3.25.0](/python/docs/reference/spanner/3.25.0/google.cloud.spanner_v1.types.ExecuteBatchDmlResponse)\n- [3.24.0](/python/docs/reference/spanner/3.24.0/google.cloud.spanner_v1.types.ExecuteBatchDmlResponse)\n- [3.23.0](/python/docs/reference/spanner/3.23.0/google.cloud.spanner_v1.types.ExecuteBatchDmlResponse)\n- [3.22.2](/python/docs/reference/spanner/3.22.2/google.cloud.spanner_v1.types.ExecuteBatchDmlResponse)\n- [3.21.0](/python/docs/reference/spanner/3.21.0/google.cloud.spanner_v1.types.ExecuteBatchDmlResponse)\n- [3.20.0](/python/docs/reference/spanner/3.20.0/google.cloud.spanner_v1.types.ExecuteBatchDmlResponse)\n- [3.19.0](/python/docs/reference/spanner/3.19.0/google.cloud.spanner_v1.types.ExecuteBatchDmlResponse)\n- [3.18.0](/python/docs/reference/spanner/3.18.0/google.cloud.spanner_v1.types.ExecuteBatchDmlResponse)\n- [3.17.0](/python/docs/reference/spanner/3.17.0/google.cloud.spanner_v1.types.ExecuteBatchDmlResponse)\n- [3.16.0](/python/docs/reference/spanner/3.16.0/google.cloud.spanner_v1.types.ExecuteBatchDmlResponse)\n- [3.15.1](/python/docs/reference/spanner/3.15.1/google.cloud.spanner_v1.types.ExecuteBatchDmlResponse)\n- [3.14.1](/python/docs/reference/spanner/3.14.1/google.cloud.spanner_v1.types.ExecuteBatchDmlResponse)\n- [3.13.0](/python/docs/reference/spanner/3.13.0/google.cloud.spanner_v1.types.ExecuteBatchDmlResponse)\n- [3.12.1](/python/docs/reference/spanner/3.12.1/google.cloud.spanner_v1.types.ExecuteBatchDmlResponse)\n- [3.11.1](/python/docs/reference/spanner/3.11.1/google.cloud.spanner_v1.types.ExecuteBatchDmlResponse)\n- [3.10.0](/python/docs/reference/spanner/3.10.0/google.cloud.spanner_v1.types.ExecuteBatchDmlResponse)\n- [3.9.0](/python/docs/reference/spanner/3.9.0/google.cloud.spanner_v1.types.ExecuteBatchDmlResponse)\n- [3.8.0](/python/docs/reference/spanner/3.8.0/google.cloud.spanner_v1.types.ExecuteBatchDmlResponse)\n- [3.7.0](/python/docs/reference/spanner/3.7.0/google.cloud.spanner_v1.types.ExecuteBatchDmlResponse)\n- [3.6.0](/python/docs/reference/spanner/3.6.0/google.cloud.spanner_v1.types.ExecuteBatchDmlResponse)\n- [3.5.0](/python/docs/reference/spanner/3.5.0/google.cloud.spanner_v1.types.ExecuteBatchDmlResponse)\n- [3.4.0](/python/docs/reference/spanner/3.4.0/google.cloud.spanner_v1.types.ExecuteBatchDmlResponse)\n- [3.3.0](/python/docs/reference/spanner/3.3.0/google.cloud.spanner_v1.types.ExecuteBatchDmlResponse)\n- [3.2.0](/python/docs/reference/spanner/3.2.0/google.cloud.spanner_v1.types.ExecuteBatchDmlResponse)\n- [3.1.0](/python/docs/reference/spanner/3.1.0/google.cloud.spanner_v1.types.ExecuteBatchDmlResponse)\n- [3.0.0](/python/docs/reference/spanner/3.0.0/google.cloud.spanner_v1.types.ExecuteBatchDmlResponse)\n- [2.1.1](/python/docs/reference/spanner/2.1.1/google.cloud.spanner_v1.types.ExecuteBatchDmlResponse)\n- [2.0.0](/python/docs/reference/spanner/2.0.0/google.cloud.spanner_v1.types.ExecuteBatchDmlResponse)\n- [1.19.3](/python/docs/reference/spanner/1.19.3/google.cloud.spanner_v1.types.ExecuteBatchDmlResponse)\n- [1.18.0](/python/docs/reference/spanner/1.18.0/google.cloud.spanner_v1.types.ExecuteBatchDmlResponse)\n- [1.17.1](/python/docs/reference/spanner/1.17.1/google.cloud.spanner_v1.types.ExecuteBatchDmlResponse)\n- [1.16.0](/python/docs/reference/spanner/1.16.0/google.cloud.spanner_v1.types.ExecuteBatchDmlResponse)\n- [1.15.1](/python/docs/reference/spanner/1.15.1/google.cloud.spanner_v1.types.ExecuteBatchDmlResponse)\n- [1.14.0](/python/docs/reference/spanner/1.14.0/google.cloud.spanner_v1.types.ExecuteBatchDmlResponse)\n- [1.13.0](/python/docs/reference/spanner/1.13.0/google.cloud.spanner_v1.types.ExecuteBatchDmlResponse)\n- [1.12.0](/python/docs/reference/spanner/1.12.0/google.cloud.spanner_v1.types.ExecuteBatchDmlResponse)\n- [1.11.0](/python/docs/reference/spanner/1.11.0/google.cloud.spanner_v1.types.ExecuteBatchDmlResponse)\n- [1.10.0](/python/docs/reference/spanner/1.10.0/google.cloud.spanner_v1.types.ExecuteBatchDmlResponse) \n\n ExecuteBatchDmlResponse(mapping=None, *, ignore_unknown_fields=False, **kwargs)\n\nThe response for\n`ExecuteBatchDml][google.spanner.v1.Spanner.ExecuteBatchDml]`.\nContains a list of `ResultSet][google.spanner.v1.ResultSet]`\nmessages, one for each DML statement that has successfully executed,\nin the same order as the statements in the request. If a statement\nfails, the status in the response body identifies the cause of the\nfailure.\n\nTo check for DML statements that failed, use the following approach:\n\n1. Check the status in the response message. The `google.rpc.Code][google.rpc.Code]` enum value `OK` indicates that all statements were executed successfully.\n2. If the status was not `OK`, check the number of result sets in the response. If the response contains `N` `ResultSet][google.spanner.v1.ResultSet]` messages, then statement `N+1` in the request failed.\n\nExample 1:\n\n- Request: 5 DML statements, all executed successfully.\n- Response: 5 `ResultSet][google.spanner.v1.ResultSet]` messages, with the status `OK`.\n\nExample 2:\n\n- Request: 5 DML statements. The third statement has a syntax error.\n- Response: 2 `ResultSet][google.spanner.v1.ResultSet]` messages, and a syntax error (`INVALID_ARGUMENT`) status. The number of `ResultSet][google.spanner.v1.ResultSet]` messages indicates that the third statement failed, and the fourth and fifth statements were not executed."]]