SQLite PRAGMA
Arahan PRAGMA SQLite ialah arahan khas yang boleh digunakan untuk mengawal pelbagai pembolehubah persekitaran dan bendera status dalam persekitaran SQLite. Nilai PRAGMA boleh dibaca dan ditetapkan mengikut keperluan.
Syntax
Untuk menanyakan nilai PRAGMA semasa, anda hanya perlu memberikan nama pragma:
Untuk menetapkan nilai baharu untuk PRAGMA, sintaksnya adalah seperti berikut:
Tetapkan mod, yang boleh menjadi nama atau integer yang setara, tetapi Nilai yang dikembalikan akan sentiasa menjadi integer.
auto_vacuum Pragma
auto_vacuum Pragma Mendapat atau menetapkan mod auto-vakum. Sintaksnya adalah seperti berikut:
PRAGMA [pangkalan data.]auto_vacuum = mod;
Antaranya, mod boleh Adakah mana-mana yang berikut:
Nilai pragma | Perihalan | ||||||||
---|---|---|---|---|---|---|---|---|---|
0 atau NONE | Lumpuhkan Auto-vakum. Ini ialah mod lalai, yang bermaksud saiz fail pangkalan data tidak akan dikurangkan melainkan arahan VACUUM digunakan secara manual. | ||||||||
1 atau PENUH | Dayakan Auto-vakum, yang automatik sepenuhnya. Dalam mod ini, fail pangkalan data dibenarkan mengecut apabila data dialih keluar daripada pangkalan data. | ||||||||
2 atau INCREMENTAL | Dayakan Auto-vakum, tetapi mesti diaktifkan secara manual. Dalam mod ini, data petikan dikekalkan dan halaman percuma hanya diletakkan dalam senarai percuma. Halaman ini boleh ditimpa pada bila-bila masa menggunakan
|
cache_size Pragma
cache_size Pragma mendapat atau menetapkan sementara saiz maksimum cache halaman dalam ingatan. Sintaksnya adalah seperti berikut:
PRAGMA [pangkalan data.]saiz_cache = halaman;
halaman Nilai dinyatakan dalam Bilangan halaman dalam cache. Cache halaman terbina dalam mempunyai saiz lalai 2,000 halaman dan saiz minimum 10 halaman.
Pragma_sensitif_huruf kecil
seperti_sensitif_huruf kecil Pragma mengawal kepekaan huruf besar-kecil bagi ungkapan LIKE terbina dalam. Secara lalai, Pragma ini adalah palsu, yang bermaksud bahawa operator LIKE terbina dalam mengabaikan huruf besar. Sintaksnya adalah seperti berikut:
Pada masa ini tiada cara untuk menanyakan status semasa Pragma ini.
count_changes Pragma
count_changes Pragma mendapat atau menetapkan nilai pulangan pernyataan operasi data, seperti INSERT, UPDATE dan DELETE. Sintaksnya adalah seperti berikut:
PRAGMA count_changes = [true|false];
Secara lalai, Pragma ini adalah palsu dan pernyataan ini benar tidak memulangkan apa-apa. Jika ditetapkan kepada benar, setiap pernyataan yang disebut akan mengembalikan satu baris, jadual lajur tunggal yang terdiri daripada nilai integer tunggal mewakili baris yang terjejas oleh operasi.
database_list Pragma
database_list Pragma akan digunakan untuk menyenaraikan semua sambungan pangkalan data. Sintaksnya adalah seperti berikut:
Pragma ini akan mengembalikan jadual dengan satu baris dan tiga lajur Setiap kali pangkalan data dibuka atau dilampirkan urutan dalam pangkalan data akan diberikan nombor, namanya dan fail yang berkaitan.
pengekodan Pragma
pengekodan Pragma mengawal cara rentetan dikodkan dan disimpan dalam fail pangkalan data. Sintaksnya adalah seperti berikut:
Pengekodan PRAGMA = format;
Nilai format boleh menjadi salah satu daripada UTF-8, UTF-16le atau UTF-16be.
freelist_count Pragma
freelist_count Pragma Mengembalikan integer yang mewakili bilangan halaman pangkalan data yang ditandakan sebagai percuma dan tersedia pada masa ini. Sintaksnya adalah seperti berikut:
Nilai format boleh menjadi salah satu daripada UTF-8, UTF-16le atau UTF-16be.
index_info Pragma
index_info Pragma mengembalikan maklumat tentang indeks pangkalan data. Sintaks adalah seperti berikut:
Set keputusan adalah untuk setiap indeks yang terkandung dalam jujukan lajur yang diberikan, lajur dalam jadual Lajur nama indeks dan lajur menunjukkan satu baris.
index_list Pragma
index_list Pragma menyenaraikan semua indeks yang dikaitkan dengan jadual. Sintaksnya adalah seperti berikut:
Set hasil akan memaparkan satu baris untuk setiap indeks untuk jujukan lajur tertentu, nama indeks dan bendera yang menunjukkan sama ada indeks itu unik.
journal_mode Pragma
journal_mode Pragma Mendapat atau menetapkan mod log yang mengawal cara fail log disimpan dan diproses. Sintaksnya adalah seperti berikut:
PRAGMA journal_mode = mod;
PRAGMA database.journal_mode;
PRAGMA database.journal_mode = mod;
Lima mod log disokong di sini:
Pragma 值 | 描述 |
---|---|
DELETE | 默认模式。在该模式下,在事务结束时,日志文件将被删除。 |
TRUNCATE | 日志文件被阶段为零字节长度。 |
PERSIST | 日志文件被留在原地,但头部被重写,表明日志不再有效。 |
MEMORY | 日志记录保留在内存中,而不是磁盘上。 |
OFF | 不保留任何日志记录。 |
kira_halaman_maks Pragma
kira_halaman_maks Pragma Mendapat atau menetapkan bilangan halaman maksimum yang dibenarkan untuk pangkalan data. Sintaksnya adalah seperti berikut:
PRAGMA [database.]max_page_count = max_page;
Nilai lalai ialah 1,073,741,823, yang mana ialah halaman gigabit, iaitu satu megabait yang berkembang dalam pangkalan data jika saiz halaman lalai ialah 1 KB.
page_count Pragma
page_count Pragma mengembalikan bilangan halaman web dalam pangkalan data semasa. Sintaksnya adalah seperti berikut:
Saiz fail pangkalan data hendaklah page_count * page_size.
page_size Pragma
page_size Pragma mendapat atau menetapkan saiz halaman pangkalan data. Sintaksnya adalah seperti berikut:
PRAGMA [pangkalan data.]page_size = bait;
Secara lalai, saiz yang dibenarkan ialah 512, 1024, 2048, 4096, 8192, 16384, 32768 bait. Satu-satunya cara untuk menukar saiz halaman pangkalan data sedia ada adalah dengan menetapkan saiz halaman dan kemudian VACUUM pangkalan data dengan segera.
parser_trace Pragma
parser_trace Pragma mengawal status penyahpepijatan pencetakan sambil menghuraikan arahan SQL. Sintaksnya adalah seperti berikut:
Secara lalai, ia ditetapkan kepada palsu, tetapi apabila ditetapkan kepada benar ia didayakan, pada ketika itu penghurai SQL akan mencetak arahan SQL semasa ia menghuraikan ia menyatakan.
recursive_triggers Pragma
recursive_triggers Pragma Mendapat atau menetapkan fungsi rekursif pencetus. Jika pencetus rekursif tidak didayakan, satu tindakan pencetus tidak akan mencetuskan pencetus yang lain. Sintaksnya adalah seperti berikut:
PRAGMA recursive_triggers = [true|false];
schema_version Pragma
<🎜 schema_version Pragma mendapatkan atau menetapkan nilai versi skema yang disimpan dalam pengepala pangkalan data. Sintaksnya adalah seperti berikut:
PRAGMA [database.]schema_version = number;
Ini adalah 32-bit yang ditandatangani nilai integer, Digunakan untuk menjejaki perubahan seni bina. Nilai ini ditambah setiap kali arahan perubahan skema dilaksanakan (seperti CREATE... atau DROP...).
secure_delete Pragma
secure_delete Pragma digunakan untuk mengawal cara kandungan dipadamkan daripada pangkalan data. Sintaksnya adalah seperti berikut:
PRAGMA secure_delete = [true|false];
PRAGMA database.secure_delete;
PRAGMA database.secure_delete = [true|false ];
Nilai lalai untuk bendera padam selamat biasanya dimatikan, tetapi ini boleh ditukar melalui pilihan binaan SQLITE_SECURE_DELETE.
sql_trace Pragma
sql_trace Pragma digunakan untuk membuang hasil surih SQL ke skrin. Sintaksnya adalah seperti berikut:
PRAGMA sql_trace = [true|false];
SQLite mesti menggunakan arahan SQLITE_DEBUG untuk menyusun Pragma dirujuk.
pragma segerak
synchronous Pragma Mendapat atau menetapkan mod penyegerakan cakera semasa, yang mengawal cara agresif SQLite menulis data ke storan fizikal. Sintaks adalah seperti berikut:
PRAGMA [database.]synchronous = mod;
SQLite menyokong mod penyegerakan berikut:
Pragma 值 | 描述 |
---|---|
0 或 OFF | 不进行同步。 |
1 或 NORMAL | 在关键的磁盘操作的每个序列后同步。 |
2 或 FULL | 在每个关键的磁盘操作后同步。 |
temp_store Pragma
temp_store Pragma mendapatkan atau menetapkan mod storan yang digunakan oleh fail pangkalan data sementara. Sintaksnya adalah seperti berikut:
PRAGMA temp_store = mod;
SQLite menyokong mod storan berikut:
Pragma 值 | 描述 |
---|---|
0 或 DEFAULT | 默认使用编译时的模式。通常是 FILE。 |
1 或 FILE | 使用基于文件的存储。 |
2 或 MEMORY | 使用基于内存的存储。 |
temp_store_directory Pragma
temp_store_directory Pragma Mendapat atau menetapkan lokasi yang digunakan untuk fail pangkalan data sementara. Sintaksnya adalah seperti berikut:
PRAGMA temp_store_directory = 'directory_path';
user_version Pragma
<_🎜 🎜> Pragma Mendapat atau menetapkan nilai versi yang ditentukan pengguna yang disimpan dalam pengepala pangkalan data. Sintaksnya adalah seperti berikut:
PRAGMA [database.]user_version;writable_schema Pragma
writable_schemaPragma mendapat atau menetapkan sama ada jadual sistem boleh diubah suai. Sintaksnya adalah seperti berikut:
PRAGMA writable_schema;