BeginTransaction
Starts a SQL transaction.
Note
A transaction can run for a maximum of 24 hours. A transaction is terminated and rolled back automatically after 24 hours.
A transaction times out if no calls use its transaction ID in three minutes. If a transaction times out before it's committed, it's rolled back automatically.
For Aurora MySQL, DDL statements inside a transaction cause an implicit commit. We recommend that you run each MySQL DDL statement in a separate
ExecuteStatement
call with continueAfterTimeout
enabled.
Request Syntax
POST /BeginTransaction HTTP/1.1
Content-type: application/json
{
"database": "string
",
"resourceArn": "string
",
"schema": "string
",
"secretArn": "string
"
}
URI Request Parameters
The request does not use any URI parameters.
Request Body
The request accepts the following data in JSON format.
- database
-
The name of the database.
Type: String
Length Constraints: Minimum length of 0. Maximum length of 64.
Required: No
- resourceArn
-
The Amazon Resource Name (ARN) of the Aurora Serverless DB cluster.
Type: String
Length Constraints: Minimum length of 11. Maximum length of 100.
Required: Yes
- schema
-
The name of the database schema.
Type: String
Length Constraints: Minimum length of 0. Maximum length of 64.
Required: No
- secretArn
-
The name or ARN of the secret that enables access to the DB cluster.
Type: String
Length Constraints: Minimum length of 11. Maximum length of 100.
Required: Yes
Response Syntax
HTTP/1.1 200
Content-type: application/json
{
"transactionId": "string"
}
Response Elements
If the action is successful, the service sends back an HTTP 200 response.
The following data is returned in JSON format by the service.
- transactionId
-
The transaction ID of the transaction started by the call.
Type: String
Length Constraints: Minimum length of 0. Maximum length of 192.
Errors
- AccessDeniedException
-
You don't have sufficient access to perform this action.
HTTP Status Code: 403
- BadRequestException
-
There is an error in the call or in a SQL statement. (This error only appears in calls from Aurora Serverless v1 databases.)
HTTP Status Code: 400
- DatabaseErrorException
-
There was an error in processing the SQL statement.
HTTP Status Code: 400
- DatabaseNotFoundException
-
The DB cluster doesn't have a DB instance.
HTTP Status Code: 404
- DatabaseUnavailableException
-
The writer instance in the DB cluster isn't available.
HTTP Status Code: 504
- ForbiddenException
-
There are insufficient privileges to make the call.
HTTP Status Code: 403
- HttpEndpointNotEnabledException
-
The HTTP endpoint for using RDS Data API isn't enabled for the DB cluster.
HTTP Status Code: 400
- InternalServerErrorException
-
An internal error occurred.
HTTP Status Code: 500
- InvalidSecretException
-
The Secrets Manager secret used with the request isn't valid.
HTTP Status Code: 400
- SecretsErrorException
-
There was a problem with the Secrets Manager secret used with the request, caused by one of the following conditions:
-
RDS Data API timed out retrieving the secret.
-
The secret provided wasn't found.
-
The secret couldn't be decrypted.
HTTP Status Code: 400
-
- ServiceUnavailableError
-
The service specified by the
resourceArn
parameter isn't available.HTTP Status Code: 503
- StatementTimeoutException
-
The execution of the SQL statement timed out.
HTTP Status Code: 400
- TransactionNotFoundException
-
The transaction ID wasn't found.
HTTP Status Code: 404
See Also
For more information about using this API in one of the language-specific AWS SDKs, see the following: