Skip to main content

Объект базы

db:exec

Выполняет запрос, ничего не возвращающий.

Аргументы

Возвращает

Пример

Без параметров принимает несколько запросов через ; — схему удобно объявлять одним куском. С параметрами запрос должен быть один.
Базы закрываются сами при lua_reload, выгрузке плагина и остановке сервера. Обращение к закрытой — понятная ошибка, а не работа с чужим файлом.

db:query

Выполняет запрос и возвращает все строки.

Аргументы

Возвращает

Строка — таблица с ключами по именам колонок.

db:first

Выполняет запрос и возвращает первую строку.

Аргументы

Возвращает

Пример

db:prepare

Разбирает SQL один раз для многократного выполнения.

Аргументы

Возвращает

Для разового запроса выигрыша нет. Выражение живёт вместе со своей базой: закрытие базы закрывает и его.

db:transaction

Выполняет блок одной транзакцией.

Аргументы

Возвращает

Пример

Без неё каждая вставка — отдельная транзакция со своей записью на диск: на 2000 строк разница в 25 раз.
Ошибка внутри fn откатывает транзакцию и уходит наружу как есть. Вложенные транзакции запрещены.

db:last_id

Rowid последней вставки.

Возвращает

db:changes

Сколько строк изменил последний запрос.

Возвращает

db:path

Путь к файлу базы.

Возвращает

db:close

Закрывает базу.

Возвращает

Ничего. Повторный вызов ошибкой не является: коду уборки не приходится помнить, закрывал он уже или нет.