Автономные транзакции могут выполняться только внутри другой транзакции. Если уже начата транзакция (назовём её T0), пользователь может решить начать подтранзакцию. При этом T0 приостанавливается, помещается в стек автономных транзакций, и начинается новая транзакция (назовём её T1).
Затем в какой-то момент пользователь может зафиксировать автономную транзакцию; после того как T1 будет зафиксирована, T0 извлекается из стека автономных транзакций и продолжает выполняться. Пользователь может также выполнить COMMIT в родительской транзакции T0 — в этом случае сначала фиксируется T1, затем T0 извлекается из стека и фиксируется.
Все эти транзакции происходят одновременно; в любой момент времени может быть активна только одна транзакция, тогда как в стеке находятся несколько (или ноль) приостановленных транзакций. При этом могут иметь место любые комбинации COMMIT/ROLLBACK с T0 и T1; например, можно выполнить COMMIT T1 и ROLLBACK T0. Одни автономные транзакции могут вкладываться в другие, насколько это позволяют глобальные ограничения ресурсов (например, размер стека автономных транзакций), которые могут быть установлены на сервере.