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

PRAGMA di SQLite

SQLite PRAGMA命令是一个特殊的命令,用于控制SQLite环境中的各种环境变量和状态标志。PRAGMA值可以读取,也可以根据需要进行设置。

语法

要查询当前的PRAGMA值,只需提供编译指示的名称。

PRAGMA pragma_name;

要为PRAGMA设置新值,请使用以下语法。

PRAGMA pragma_name = value;

设置模式可以是名称,也可以是等效的整数,但是返回的值始终是整数。

auto_vacuum PRAGMA

auto_vacuum PRAGMA获取或设置自动真空模式。以下是简单的语法。

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

以下何处mode可以-

Numero di sequenzaPRAGMA值和说明
1

0 or NONE

Auto-vacuum已禁用。这是默认模式,这意味着除非使用VACUUM命令手动对其进行清理,否则数据库文件的大小永远不会缩小。

2

1 or FULL

启用了Auto-vacuum并且它是全自动的,当从数据库中删除数据时,它允许数据库文件缩小。

3

2 or INCREMENTAL

Auto-vacuum已启用,但必须手动激活。在这种模式下,将保留参考数据,但是将空闲页面简单地放在空闲列表中。这些页面可以随时使用incremental_vacuum pragma

cache_size Pragma

cache_size编译可以得到或暂时设置在内存中的页面缓存的最大尺寸。以下是简单的语法。

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

pages值表示高速缓存中的页面数。内置页面缓存的默认大小为2,000页,最小大小为10页。

case_sensitive_like Pragma

case_sensitive_like pragma控制内置LIKE表达式的大小写敏感。默认情况下,此pragma为false,这意味着内置的LIKE运算符忽略字母大小写。下面是简单语法。

PRAGMA case_sensitive_like = [true|false];

无法查询此编译指示的当前状态。

count_changes Pragma

count_changes pragma获取或设置数据操作语句(例如INSERT,UPDATE和DELETE)的返回值。以下是简单的语法。

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

默认情况下,此编译指示为false,并且这些语句不返回任何内容。如果设置为true,则每个提及的语句将返回一个单列单行表,该表由单个整数值组成,该整数值指示该操作所影响的行。

database_list Pragma

database_list实用程序将用于列出所有附加数据库。以下是简单的语法。

PRAGMA database_list;

该实用程序将返回一个三列的表,每个打开或连接的数据库都有一行,给出数据库序列号,其名称和关联的文件。

encoding Pragma

encoding pragma控制字符串是如何编码,并存储在数据库中的文件。以下是简单的语法。

PRAGMA encoding;
PRAGMA encoding = format;

格式值可以是UTF-8, UTF-16leoUTF-16be之一。

freelist_count Pragma

freelist_count Pragma返回一个整数,表示许多数据库页当前如何标记为空闲和可用的。以下是简单的语法。

PRAGMA [database.]freelist_count;

格式值可以是UTF-8, UTF-16le oUTF-16be之一。

index_info Pragma

index_info Pragma返回有关数据库索引的信息。以下是简单的语法。

PRAGMA [database.]index_info( index_name );

Il result set fornirà una riga per ogni colonna contenuta nell'indice, fornendo l'ordine della colonna, l'indice della colonna nella tabella e il nome della colonna.

index_list Pragma

index_list Pragma elenca tutti gli indici associati alla tabella. Di seguito è riportata la sintassi semplice.

PRAGMA [database.]index_list( table_name );

Il result set fornirà una riga per ogni indice, fornendo la sequenza dell'indice, il nome dell'indice e un indicatore che indica se l'indice è unico.

journal_mode Pragma

journal_mode Pragma ottenere o impostare il modo in cui il file di log viene memorizzato e gestito dal modello di log. Di seguito è riportata la sintassi semplice.

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

La tabella seguente elenca i cinque modelli di diario supportati.

Numero di sequenzaValori PRAGMA e descrizioni
1

DELETE

Questo è il modello predefinito. Alla fine della transazione, il file del diario viene eliminato.

2

TRUNCATE

Il file di日记 viene troncato a lunghezze zero di byte.

3

PERSIST

Il file del diario viene conservato al suo posto, ma il titolo viene sovrascritto per indicare che il diario non è più valido.

4

MEMORY

I record del diario vengono conservati in memoria, non sul disco.

5

OFF

Non conservare i record del diario.

max_page_count PRAGMA

max_page_count PRAGMA ottenere o impostare il numero massimo di pagine consentito per il database. Di seguito è riportata la sintassi semplice.

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

Il valore predefinito è 1.073.741.823, ovvero una pagina gigabit, il che significa che se la dimensione della pagina predefinita è di 1 KB, il database può crescere fino a 1 TB.

page_count PRAGMA

page_count PRAGMA restituisce il numero di pagine correnti del database. Di seguito è riportata la sintassi semplice -

PRAGMA [database.]page_count;

La dimensione del file del database dovrebbe essere page_count * page_size.

page_size PRAGMA

page_size PRAGMA ottenere o impostare la dimensione della pagina del database. Di seguito è riportata la sintassi semplice.

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

Per impostazione predefinita, la dimensione massima consentita è di 512, 1024, 2048, 4096, 8192, 16384 e 32768 byte. Il modo unico per modificare la dimensione della pagina di un database esistente è impostare la dimensione della pagina e quindi eseguire immediatamente VACUUM sul database.

PRAGMA parser_trace

parser_trace PRAGMA indica il controllo della stampa dello stato di debug perché analizza comandi SQL. Ecco una sintassi semplice.

PRAGMA parser_trace = [true|false];

Per impostazione predefinita, è impostato su false, ma quando viene abilitato impostando su true, l'analizzatore SQL stampa il suo stato durante la解析 di comandi SQL.

PRAGMA recursive_triggers

recursive_triggers PRAGMA recupera o imposta la funzione di trigger ricorsivo. Se i trigger ricorsivi non sono abilitati, l'operazione del trigger non attiverà un altro trigger. Ecco una sintassi semplice.

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

PRAGMA schema_version

schema_version PRAGMA recupera o imposta il valore della versione della struttura architettonica memorizzata nell'intestazione del database. Ecco una sintassi semplice.

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

Questo è un valore intero a segni a 32 bit utilizzato per tracciare le modifiche alla struttura. Ogni volta che viene eseguito un comando di modifica del modello (ad esempio CREATE ... o DROP ...), questo valore aumenta.

PRAGMA secure_delete

secure_delete PRAGMA viene utilizzato per controllare come il contenuto viene eliminato dal database. Ecco un esempio di sintassi semplice.

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

Il valore predefinito per la sicurezza dell'eliminazione dei segni di sicurezza è generalmente off, ma può essere modificato impostando l'opzione di costruzione SQLITE_SECURE_DELETE.

sql_trace PRAGMA

sql_trace PRAGMA utilizzato per trasferire i risultati del tracciamento SQL sullo schermo. Ecco una sintassi semplice.

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

È necessario compilare SQLite con l'instruzione SQLITE_DEBUG per includere questo comando di compilazione.

synchronous PRAGMA

synchronous PRAGMA获取或设置当前磁盘同步模式,控制SQLite如何积极地将数据写入物理存储。以下是简单的语法。

PRAGMA [database.]synchronous;
PRAGMA [database.]synchronous = mode;

SQLite supporta i seguenti modelli di sincronizzazione elencati nella tabella sottostante.

Numero di sequenzaValori PRAGMA e descrizioni
1

0 or OFF

Nessuna sincronizzazione

2

1 or NORMAL

Sincronizzazione dopo ogni sequenza di operazioni critiche su disco

3

2 or FULL

Sincronizzazione dopo ogni operazione critica su disco

temp_store PRAGMA

temp_store PRAGMA获取或设置临时数据库文件所使用的存储模式。以下是简单的语法。

PRAGMA temp_store;
PRAGMA temp_store = mode;

SQLite supporta i seguenti modelli di archiviazione.

Numero di sequenzaValori PRAGMA e descrizioni
1

0 or DEFAULT

Utilizzare il valore predefinito impostato durante la compilazione. Di solito è FILE.

2

1 or FILE

Utilizzare la memorizzazione basata su file.

3

2 or MEMORY

Utilizzare la memorizzazione basata su memoria.

temp_store_directory PRAGMA

temp_store_directory PRAGMA获取或设置用于临时数据库文件的位置。以下是简单的语法。

PRAGMA temp_store_directory;
PRAGMA temp_store_directory = 'directory_path';

user_version PRAGMA

user_versionI comandi di compilazione获取或设置存储在数据库头中的用户定义的版本值。Ecco una sintassi semplice.

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

Questo è un valore intero a 32 bit con segno, che i sviluppatori possono impostare per scopi di tracciamento delle versioni.

PRAGMA writable_schema

writable_schemaCompilazione per ottenere o impostare la capacità di modificare le tabelle di sistema. Ecco una sintassi semplice.

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

Se è stato impostato questo indicatore di compilazione, è possibile creare e modificare tabelle che iniziano con sqlite_. Incluso sqlite_master. Si prega di essere prudenti quando si utilizza l'indicatore di compilazione, poiché potrebbe causare un danneggiamento completo del database.