## Syntax
```mermaid
%%{init: {
'theme': 'base',
'flowchart': { 'padding': '7', 'nodeSpacing': '20', 'rankSpacing': '20' },
'themeVariables': {
'fontSize': '11px',
'fontFamily': 'Arial'
}
}}%%
flowchart LR
Start((START)) -->| | beginTransactionStatement
beginTransactionStatement --> End((END))
Start((START)) -->| | rollbackTransactionStatement
rollbackTransactionStatement --> End((END))
Start((START)) -->| | commitTransactionStatement
commitTransactionStatement --> End((END))
```
## beginTransactionStatement
```mermaid
%%{init: {
'theme': 'base',
'flowchart': { 'padding': '7', 'nodeSpacing': '20', 'rankSpacing': '20' },
'themeVariables': {
'fontSize': '11px',
'fontFamily': 'Arial'
}
}}%%
flowchart LR
beginTransactionStatement_start((START))
beginTransactionStatement_start --> beginTransactionStatement_0_0[BEGIN]:::quoted
beginTransactionStatement_0_0 --> beginTransactionStatement_0_1[TRANSACTION]:::quoted
beginTransactionStatement_0_1 --> beginTransactionStatement_0_2[DATACONTAINER]:::quoted
beginTransactionStatement_0_2 --> beginTransactionStatement_0_3[stringConstant]
beginTransactionStatement_0_3 --> beginTransactionStatement_end((END))
```
## Purpose
A begin transaction statement initiates a transaction. Invantive UniversalSQL typically provides no transaction logic given the distributed nature and the limitations of the possible platforms. Some platforms enable collection of transaction data, which are to be handed over to the backing platform all together.
## rollbackTransactionStatement
```mermaid
%%{init: {
'theme': 'base',
'flowchart': { 'padding': '7', 'nodeSpacing': '20', 'rankSpacing': '20' },
'themeVariables': {
'fontSize': '11px',
'fontFamily': 'Arial'
}
}}%%
flowchart LR
rollbackTransactionStatement_start((START))
rollbackTransactionStatement_start --> rollbackTransactionStatement_0_0[ROLLBACK]:::quoted
rollbackTransactionStatement_0_0 --> rollbackTransactionStatement_0_1[TRANSACTION]:::quoted
rollbackTransactionStatement_0_1 --> rollbackTransactionStatement_0_2[DATACONTAINER]:::quoted
rollbackTransactionStatement_0_2 --> rollbackTransactionStatement_0_3[stringConstant]
rollbackTransactionStatement_0_3 --> rollbackTransactionStatement_end((END))
```
## Purpose
Forgets all collected transaction data not yet handed over to the backing platform.
## commitTransactionStatement
```mermaid
%%{init: {
'theme': 'base',
'flowchart': { 'padding': '7', 'nodeSpacing': '20', 'rankSpacing': '20' },
'themeVariables': {
'fontSize': '11px',
'fontFamily': 'Arial'
}
}}%%
flowchart LR
commitTransactionStatement_start((START))
commitTransactionStatement_start --> commitTransactionStatement_0_0[COMMIT]:::quoted
commitTransactionStatement_0_0 --> commitTransactionStatement_0_1[TRANSACTION]:::quoted
commitTransactionStatement_0_1 --> commitTransactionStatement_0_2[DATACONTAINER]:::quoted
commitTransactionStatement_0_2 --> commitTransactionStatement_0_3[stringConstant]
commitTransactionStatement_0_3 --> commitTransactionStatement_end((END))
```
## Purpose
Hand over all collected transaction to the backing platform for registration.