Output
Transaction Control
Makes every database write upstream of it one transaction: committed together when all of those steps worked, rolled back together otherwise.
When to use it
Use it when a partial load would be worse than none — orders and their lines in two tables, or the same rows to two databases.
In a pipeline
File InputPostgreSQL OutputTransaction Control
Settings
| Setting | Type | Required | Default or hint |
|---|---|---|---|
| Mode | select | — | commit |
| Roll back when | text | — | Optional formula on the rows arriving, e.g. {Errors} > 0 |
Example
All-or-nothing load
- Mode=Commit when every step worked
| order_id | total |
|---|---|
| 1042 | 860 |
| order_id | total |
|---|---|
| 1042 | 860 |
Worth knowing
- Every Database output before it (PostgreSQL, MySQL, SQL Server, Azure SQL, Oracle, Snowflake, MongoDB) keeps its transaction open until this node runs; connect all of them to it.
- If a step before it fails, or the run stops early, everything is rolled back. Roll back when (a formula on the rows arriving, e.g. {Errors} > 0) rolls back on purpose; Always roll back is a dry run against the real database.
- BigQuery, Google Sheets, Salesforce and file uploads cannot take part; Commit per batch leaves each output to commit on its own.