Updated at July 17, 2026 02:08 PM
box.savepoint()
Return a descriptor of a savepoint (type = table), which can be used later by box.rollback_to_savepoint(savepoint). Savepoints can only be created while a transaction is active, and they are destroyed when a transaction ends.
Returns
savepoint table
Return type
Lua object
Returns
error if the savepoint cannot be set in absence of active transaction.
Possible errors: error if for some reason memory cannot be allocated.
Example
-- Insert test data --box.space.bands:insert { 1, 'Roxette', 1986 }box.space.bands:insert { 2, 'Scorpions', 1965 }box.space.bands:insert { 3, 'Ace of Base', 1987 }-- Rollback the transaction to a savepoint --box.begin()box.space.bands:insert { 4, 'The Beatles', 1960 }save1 = box.savepoint()box.space.bands:replace { 1, 'Pink Floyd', 1965 }box.rollback_to_savepoint(save1)box.commit()