English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

PRAGMA do SQLite

O comando PRAGMA do SQLite é um comando especial usado para controlar várias variáveis de ambiente e sinalizadores de estado no ambiente do SQLite. Os valores do PRAGMA podem ser lidos e também podem ser configurados conforme necessário.

Sintaxe

Para consultar o valor atual do PRAGMA, forneça apenas o nome da instrução de compilação.

PRAGMA pragma_name;

Para definir um novo valor para PRAGMA, use a seguinte sintaxe.

PRAGMA pragma_name = valor;

O modo pode ser um nome ou um inteiro equivalente, mas o valor retornado sempre é um inteiro.

auto_vacuum PRAGMA

auto_vacuum O PRAGMA obtém ou define o modo de vácuo automático. A seguir está a sintaxe simples.

PRAGMA [database.]auto_vacuum;
PRAGMA [database.]auto_vacuum = modo;

A seguir, ondemodoPode-

NúmeroValores e descrições do PRAGMA
1

0 ou NONE

Auto-O vacuum está desativado. Este é o modo padrão, o que significa que, a menos que o comando VACUUM seja usado manualmente para limpar, o tamanho do arquivo do banco de dados nunca diminuirá.

2

1 ou FULL

Auto vacuum ativado-vacuum e é completamente automático, ao excluir dados do banco de dados, ele permite que o arquivo do banco de dados encolha.

3

2 ou INCREMENTAL

Auto-O vacuum está habilitado, mas deve ser ativado manualmente. Neste modo, os dados de referência serão mantidos, mas as páginas livres simplesmente ficarão na lista de páginas livres. Essas páginas podem ser usadas a qualquer momentoincremental_vacuum pragma.

cache_size Pragma

cache_sizeA compilação pode obter ou temporariamente definir o tamanho máximo da cache de páginas na memória. A seguir está a sintaxe simples.

PRAGMA [database.]cache_size;
PRAGMA [database.]cache_size = pages;

pagesO valor representa o número de páginas na cache. O tamanho padrão da cache de páginas interna é2, com o tamanho mínimo de10páginas.

case_sensitive_like Pragma

case_sensitive_like pragma controla a sensibilidade à maiúsculas e minúsculas das expressões LIKE internas. Por padrão, este pragma é false, o que significa que o operador LIKE interno ignora a maiúsculas e minúsculas. A seguir está a sintaxe simples.

PRAGMA case_sensitive_like = [true|false];

Não é possível consultar o estado atual deste sinalizador de compilação.

count_changes Pragma

count_changes pragma obtém ou define o valor de retorno das sentenças de operação de dados (por exemplo, INSERT, UPDATE e DELETE). A seguir está a sintaxe simples.

PRAGMA count_changes;
PRAGMA count_changes = [true|false];

Por padrão, esta instrução de compilação é false e essas sentenças não retornam nenhum conteúdo. Se definido como true, cada sentença mencionada retornará uma tabela de uma coluna e uma linha, consistindo em um valor inteiro único que indica o número de linhas afetadas pela operação.

database_list Pragma

database_listEste utilitário será usado para listar todos os bancos de dados adicionais. A seguir está a sintaxe simples.

PRAGMA database_list;

Este utilitário retornará uma tabela de três colunas, com uma linha para cada banco de dados aberto ou conectado, fornecendo o número sequencial do banco de dados, seu nome e o arquivo associado.

encoding Pragma

encoding pragma controla como a string de controle é codificada e armazenada no arquivo do banco de dados. A seguir está a sintaxe simples.

PRAGMA encoding;
PRAGMA encoding = format;

O valor do formato pode serUTF-8, UTF-16ououUTF-16serum dos

freelist_count Pragma

freelist_count Pragma retorna um inteiro que indica como muitas páginas de banco de dados estão atualmente marcadas como livres e disponíveis. A seguir está a sintaxe simples.

PRAGMA [database.]freelist_count;

O valor do formato pode serUTF-8, UTF-16ouUTF-16serum dos

index_info Pragma

index_info Pragma retorna informações sobre os índices do banco de dados. A seguir está uma sintaxe simples

PRAGMA [database.]index_info(index_name);

O conjunto de resultados conterá uma linha para cada coluna contida no índice, fornecendo a ordem da coluna, o índice da coluna na tabela e o nome da coluna.

index_list Pragma

index_list Pragma lista todos os índices associados à tabela. A seguir está uma sintaxe simples

PRAGMA [database.]index_list(table_name);

O conjunto de resultados conterá uma linha para cada índice, fornecendo a sequência do índice, o nome do índice e o sinal de que o índice é único.

journal_mode Pragma

journal_mode OPragma obtém ou define o modo de log que controla como os arquivos de log são armazenados e tratados. A seguir está uma sintaxe simples

PRAGMA journal_mode;
PRAGMA journal_mode = mode;
PRAGMA database.journal_mode;
PRAGMA database.journal_mode = mode;

A tabela a seguir lista os cinco modos de diary suportados.

NúmeroValores e descrições do PRAGMA
1

DELETE

Este é o modo padrão. No final da transação, os arquivos de diary são excluídos.

2

TRUNCATE

Os arquivos de diary são truncados para zero bytes de comprimento.

3

PERSIST

Os arquivos de diary são mantidos no local, mas o título é substituído para indicar que o diary não é mais válido.

4

MEMORY

Os registros de diary são armazenados na memória, não no disco.

5

OFF

Não manter registros de diary.

max_page_count PRAGMA

max_page_count O PRAGMA obtém ou define o número máximo de páginas permitido para o banco de dados. A seguir está uma sintaxe simples

PRAGMA [database.]max_page_count;
PRAGMA [database.]max_page_count = max_page;

O valor padrão é1,073,741,823Isso é um gigabyte de página, o que significa que, se o padrão padrão for1 Se o tamanho da página for KB, o banco de dados pode crescer até1 TB.

page_count PRAGMA

page_count O PRAGMA retorna o número atual de páginas do banco de dados. A seguir está uma sintaxe simples-

PRAGMA [database.]page_count;

O tamanho do arquivo de banco de dados deve ser page_count * page_size。

page_size PRAGMA

page_size O PRAGMA obtém ou define o tamanho da página do banco de dados. A seguir está a sintaxe simples.

PRAGMA [database.]page_size;
PRAGMA [database.]page_size = bytes;

O tamanho permitido por padrão é512、1024、2048、4096、8192、16384e32768bytes. A única maneira de alterar o tamanho da página de um banco de dados existente é ajustar o tamanho da página e, em seguida, executar o VACUUM imediatamente no banco de dados.

PRAGMA parser_trace

parser_trace O PRAGMA indica o controle da impressão do estado de depuração, porque ele analisa comandos SQL. A seguir está a sintaxe simples.

PRAGMA parser_trace = [true|false];

Por padrão, ele é configurado como false, mas quando ativado definindo-o como true, o analisador SQL imprimirá seu estado ao analisar comandos SQL.

PRAGMA recursive_triggers

recursive_triggers O PRAGMA obtém ou define a função de gatilhos recursivos. Se os gatilhos recursivos não forem ativados, as operações de gatilho não desencadearão outro gatilho. A seguir está a sintaxe simples.

PRAGMA recursive_triggers;
PRAGMA recursive_triggers = [true|false];

PRAGMA schema_version

schema_version O PRAGMA obtém ou define o valor da versão da arquitetura armazenada no cabeçalho do banco de dados. A seguir está a sintaxe simples.

PRAGMA [database.]schema_version;
PRAGMA [database.]schema_version = number;

Este é32Um valor inteiro de sinalizado de bits, usado para rastrear alterações na arquitetura. Cada vez que um comando de mudança de modo é executado (por exemplo, CREATE ... ou DROP ...), este valor é aumentado.

PRAGMA secure_delete

secure_delete O PRAGMA é usado para controlar como o conteúdo é excluído do banco de dados. A seguir está a sintaxe simples.

PRAGMA secure_delete;
PRAGMA secure_delete = [true|false];
PRAGMA database.secure_delete;
PRAGMA database.secure_delete = [true|false];

O valor padrão da marca de exclusão segura geralmente é off, mas pode ser alterado usando a opção de construção SQLITE_SECURE_DELETE.

PRAGMA sql_trace

sql_trace PRAGMA usado para despejar os resultados do rastreamento SQL na tela. Abaixo está a sintaxe simples.

PRAGMA sql_trace;
PRAGMA sql_trace = [true|false];

É necessário compilar o SQLite com a instrução SQLITE_DEBUG para incluir esta indicação de compilação.

PRAGMA synchronous

synchronous PRAGMA obter ou definir o modo de sincronização de disco atual, controlando como o SQLite escreve ativamente dados para o armazenamento físico. Abaixo está a sintaxe simples.

PRAGMA [banco_de_dados.]synchronous;
PRAGMA [banco_de_dados.]synchronous = modo;

SQLite suporta os seguintes modos de sincronização listados na tabela a seguir.

NúmeroValores e descrições do PRAGMA
1

0 ou OFF

Nenhuma sincronização

2

1 ou NORMAL

Sincronização após cada sequência de operações de disco crítica

3

2 ou FULL

Sincronização após cada operação de disco crítica

PRAGMA temp_store

temp_store PRAGMA obter ou definir o modo de armazenamento utilizado pelos arquivos de banco de dados temporários. Abaixo está a sintaxe simples.

PRAGMA temp_store;
PRAGMA temp_store = modo;

SQLite suporta os seguintes modos de armazenamento.

NúmeroValores e descrições do PRAGMA
1

0 ou DEFAULT

Usar o valor padrão de compilação. Geralmente é FILE.

2

1 ou FILE

Usar armazenamento baseado em arquivo.

3

2 ou MEMORY

Usar armazenamento baseado em memória.

PRAGMA temp_store_directory

temp_store_directory PRAGMA obter ou definir o local utilizado para arquivos de banco de dados temporários. Abaixo está a sintaxe simples.

PRAGMA temp_store_directory;
PRAGMA temp_store_directory = 'caminho_do_diretório';

PRAGMA user_version

user_versionIndicação de compilação para obter ou definir o valor da versão definida pelo usuário armazenado no cabeçalho do banco de dados. Abaixo está a sintaxe simples.

PRAGMA [banco_de_dados.]user_version;
PRAGMA [banco_de_dados.]user_version = número;

Este é32Valor inteiro com sinal, os desenvolvedores podem configurar este valor para fins de rastreamento de versão.

PRAGMA writable_schema

writable_schemaCompilar para obter ou definir a capacidade de modificar as tabelas do sistema. Aqui está uma sintaxe simples.

PRAGMA writable_schema;
PRAGMA writable_schema = [true|false];

Se este sinal de compilação foi definido, é possível criar e modificar tabelas começando com sqlite_, incluindo a tabela sqlite_master. Use o sinal de compilação com cautela, pois pode levar a danos completos no banco de dados.