Разделы
Начало работы
Быстрый стартCLI-флаги и конфиг
SQL
Диалект FileDB SQLDDLDMLSELECTФункции и выраженияТранзакции
Клиенты
HTTP APIНативные драйверыPostgreSQL / MySQL wire-протоколБинарный RPC
Возможности
RBAC (multi-user)Эмбеддинги (семантический поиск)Импорт файловБэкапыДемо-режим-витрина и управление .fdb
Эксплуатация
ДеплойАрхитектураFileDB на Windows: трей и автозагрузка
Справка
Сравнение с PostgreSQL / MySQL
AI
AI-функции: обзорAI-чат и AI-агентУмный экспорт и AI-маппинг импортаЭмбеддинги и гибридный поискНастройка AI: провайдеры и пресеты
Дашборды
Дашборды: обзорДатасеты и чартыNo-Code конструктор запросовAI-ассистент дашбордовВиджеты, сетка и фильтрыПубличные ссылки и экспортРаскладка, текстовые карточки и KPI-сравнение

Транзакции

Синтаксис

BEGIN;
INSERT INTO accounts (id, balance) VALUES (1, 100);
UPDATE accounts SET balance = balance - 50 WHERE id = 1;
UPDATE accounts SET balance = balance + 50 WHERE id = 2;
COMMIT; -- или ROLLBACK

Как это устроено

Транзакции реализованы через журнал компенсирующих действий: каждая мутация записывает обратную операцию (INSERTDELETE, UPDATE → восстановление предыдущего состояния строки, DELETE → повторная вставка). ROLLBACK проигрывает журнал в обратном порядке.

Это не MVCC — текущая модель ближе к read-committed, без снапшот-изоляции. Но ROLLBACK честно откатывает все изменения сессии, а WAL с fsync на каждом commit гарантирует, что закоммиченная транзакция переживёт любой сбой процесса (kill, SIGTERM, отключение питания).

Writer-сериализация

Запись в базу сериализуется по SQLite-подобной модели: db-wide writer lock с режимами DEFERRED/IMMEDIATE — конкурентные writer'ы не переплетаются, что упрощает рассуждения о консистентности за счёт последовательной записи.

Похожие страницы
← Назад
Функции и выражения
Далее →
HTTP API