SQLite команда PRAGMA
- это специальная команда, которая будет использоваться для управления различными экологическими переменными и флагами состояния в среде SQLite. Значение PRAGMA
может быть прочитано, и оно также может быть установлено на основе требований.
Чтобы запросить текущее значение PRAGMA
, просто укажите имя прагмы.
PRAGMA pragma_name;
Чтобы установить новое значение для PRAGMA
, используйте следующий синтаксис.
PRAGMA pragma_name = value;
Режим установки может быть либо именем, либо целочисленным эквивалентом, но возвращаемое значение всегда будет целым числом.
auto_vacuum Pragma
Auto_vacuum - прагма получает или задает режим автоматического вакуума.
PRAGMA [database.]auto_vacuum;
PRAGMA [database.]auto_vacuum = mode;
Значение mode
может быть любым из следующих:
Значение | Описание |
0 or NONE | Автоматический вакуум отключен. Это режим по умолчанию, который означает, что файл базы данных никогда не будет уменьшаться по размеру, если он не будет очищен вручную с помощью команды VACUUM . |
1 or FULL | Автоматический вакуум включен и полностью автоматизирован, что позволяет сжимать файл базы данных при удалении данных из базы данных. |
2 or INCREMENTAL | Авто-вакуум включен, но должен быть активирован вручную. В этом режиме опорные данные сохраняются, но бесплатные страницы просто помещаются в свободный список. Эти страницы могут быть восстановлены с использованием incremental_vacuum pragma в любое время. |
cache_size Pragma
CACHE_SIZE прагма может получить или временно установить максимальный размер кэша страниц в памяти.
PRAGMA [database.]cache_size;
PRAGMA [database.]cache_size = pages;
Значение pages
представляет количество страниц в кеше. Встроенный кеш-страница имеет размер по умолчанию 2000 страниц и минимальный размер 10 страниц.
case_sensitive_like Pragma
Case_sensitive_like прагма контролирует прецедентное чувствительность встроенного LIKE
выражения. По умолчанию эта прагма является ложной, что означает, что встроенный оператор LIKE
игнорирует регистр букв.
PRAGMA case_sensitive_like = [true|false];
count_changes Pragma
count_changes прагма получает или задает возвращаемое значение операторов манипуляции данными, таких как INSERT, UPDATE
и DELETE
.
PRAGMA count_changes;
PRAGMA count_changes = [true|false];
По умолчанию эта прагма является ложной, и эти утверждения ничего не возвращают. Если установлено значение true
, каждый из указанных операторов возвращает таблицу с одним столбцом и одной строкой, состоящую из одного целочисленного значения, указывающего воздействие строк на операцию.
database_list Pragma
Database_list прагма будет использоваться , чтобы вывести список всех баз данных прилагается.
PRAGMA database_list;
Эта прагма вернет таблицу из трех столбцов с одной строкой на открытую или прикрепленную базу данных, в которой будет указан порядковый номер базы данных, ее имя и связанный с ним файл.
encoding Pragma
encoding прагма контролирует , как строки кодируются и хранятся в файле базы данных.
PRAGMA encoding;
PRAGMA encoding = format;
freelist_count Pragma
Freelist_count прагма возвращает целое число,указывающее, сколько страниц базы данных в настоящее время помечаются как свободные и доступны.
PRAGMA [database.]freelist_count;
index_info Прагма
Index_info прагма возвращает информацию об индексе базы данных.
PRAGMA [database.]index_info( index_name );
Результирующий набор будет содержать одну строку для каждого столбца, содержащегося в индексе, указывающем последовательность столбцов, индекс столбца с таблицей и именем столбца.
index_list Pragma
index_list прагма перечисляет все индексы, связанные с таблицей.
PRAGMA [database.]index_list( table_name );
Результирующий набор будет содержать одну строку для каждого индекса, указывающую индексную последовательность, имя индекса и флаг, указывающий, является ли индекс уникальным или нет.
journal_mode Pragma
Journal_mode прагма получает или задает режим журнала,который контролирует, как файл журнала хранится и обрабатывается.
PRAGMA journal_mode;
PRAGMA journal_mode = mode;
PRAGMA database.journal_mode;
PRAGMA database.journal_mode = mode;
Существует пять поддерживаемых режимов журнала:
Название | Описание |
DELETE | Это режим "по умолчанию". Здесь при завершении транзакции файл журнала удаляется. |
TRUNCATE | Файл журнала усекается до длины нулевых байтов. |
PERSIST | Файл журнала остается на месте, но заголовок перезаписывается, чтобы указать, что журнал больше недействителен. |
MEMORY | Запись журнала хранится в памяти, а не на диске. |
OFF | Запись журнала не ведется. |
max_page_count Pragma
Max_page_count прагма получает или задает максимально допустимое количество страниц для базы данных.
PRAGMA [database.]max_page_count;
PRAGMA [database.]max_page_count = max_page;
page_count Pragma
PAGE_COUNT прагма возвращает в текущем количестве страниц в базе данных.
PRAGMA [database.]page_count;
page_size Pragma
PAGE_SIZE прагма получает или задает размер страницы базы данных.
PRAGMA [database.]page_size;
PRAGMA [database.]page_size = bytes;
parser_trace Pragma
Параметр parser_trace
управляет печатью состояния отладки при анализе SQL-команд.
PRAGMA parser_trace = [true|false];
По умолчанию для него установлено значение false
, но когда включено, установив его в true
, анализатор SQL будет печатать свое состояние, когда он анализирует команды SQL.
recursive_triggers Pragma
recursive_triggers прагма получает или задает рекурсивную функциональность триггера. Если рекурсивные триггеры не включены, действие триггера не запускает другой триггер.
PRAGMA recursive_triggers;
PRAGMA recursive_triggers = [true|false];
schema_version Прагма
Schema_version прагма получает или задает значение версии схемы, которая хранится в заголовке базы данных.
PRAGMA [database.]schema_version;
PRAGMA [database.]schema_version = number;
Это 32-разрядное знаковое целочисленное значение, которое отслеживает изменения схемы. Всякий раз, когда выполняется команда изменения схемы (например, CREATE ...
или DROP ...
), это значение увеличивается.
secure_delete Pragma
Secure_delete прагма используется для управления, как контент будет удален из базы данных.
PRAGMA secure_delete;
PRAGMA secure_delete = [true|false];
PRAGMA database.secure_delete;
PRAGMA database.secure_delete = [true|false];
Значение по умолчанию для флага безопасного удаления обычно отключено, но это можно изменить с помощью опции SQLITE_SECURE_DELETE
.
sql_trace Pragma
Sql_trace прагма используется для вывода результатов SQL трассировки на экран.
PRAGMA sql_trace;
PRAGMA sql_trace = [true|false];
SQLite должен быть скомпилирован с помощью директивы SQLITE_DEBUG
для включения этой прагмы.
synchronous Pragma
synchronous прагма получает или устанавливает текущий режим синхронизации диска, который контролирует, насколько агрессивно SQLite будет записывать данные на всем пути к физической памяти.
PRAGMA [database.]synchronous;
PRAGMA [database.]synchronous = mode;
SQLite поддерживает следующие режимы синхронизации:
Название | Описание |
0 or OFF | Нет синхронизации вообще |
1 or NORMAL | Синхронизация после каждой последовательности операций с критическим диском |
2 or FULL | Синхронизация после каждой операции с критическим диском |
temp_store Pragma
Temp_store прагма получает или задает режим хранения, используемый временных файлов базы данных.
PRAGMA temp_store;
PRAGMA temp_store = mode;
SQLite поддерживает следующие режимы хранения.
Название | Описание |
0 or DEFAULT | Используйте параметр времени компиляции. Обычно FILE. |
1 or FILE | Используйте файловое хранилище. |
2 or MEMORY | Используйте хранилище на основе памяти. |
temp_store_directory Pragma
Temp_store_directory прагма получает или задает расположение используется для временных файлов базы данных.
PRAGMA temp_store_directory;
PRAGMA temp_store_directory = 'directory_path';
user_version Pragma
User_version прагма получает или задает определенное пользователем значение версии, которая хранится в заголовке базы данных.
PRAGMA [database.]user_version;
PRAGMA [database.]user_version = number;
writable_schema Pragma
Writable_schema прагма получает или устанавливает возможность изменять системные таблицы.
PRAGMA writable_schema;
PRAGMA writable_schema = [true|false];
Если эта прагма установлена, таблицы, начинающиеся с sqlite_, могут быть созданы и изменены, включая таблицу sqlite_master. Будьте осторожны при использовании прагмы, потому что это может привести к полному повреждению базы данных.
0 комментариев