⌘K ctrl+k
Search Shortcut cmd + k | ctrl + k
Transactions

DuckLake has full support for ACID and offers snapshot isolation for data and catalog changes. Data changes and DDL statements such as CREATE TABLE or ALTER TABLE have full transactional support. Transactions have all-or-nothing semantics and can be composed of multiple changes that are made to the database.

The extension also provides some syntax to be able to manage transactions. This is explained in the DuckDB documentation. Basically it comes down to this:

BEGIN TRANSACTION;
-- Some operation
-- Some other operation
COMMIT;
-- Or
ROLLBACK; -- ABORT will have the same behavior

In the context of DuckLake, one committed transaction containing data or DDL changes (i.e., a BEGIN-COMMIT block) represents one snapshot. Read-only transactions, and transactions that only insert rows and delete all of those rows before committing, do not create a snapshot.

Explicit time travel queries read committed data at the requested snapshot and exclude the transaction's own uncommitted writes. A transaction cannot time travel to snapshots committed after it started.

If multiple transactions are being performed concurrently in one table, the ducklake extension has some default configurations for a retry mechanism. This default configurations can be overridden.

© 2026 DuckDB Foundation, Amsterdam NL
DuckLake Home Manifesto Blog