Tutorial klasik...login
Tutorial klasik SQLite
pengarang:php.cn  masa kemas kini:2022-04-13 17:05:02

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:

PRAGMA pragma_name;

Untuk menetapkan nilai baharu untuk PRAGMA, sintaksnya adalah seperti berikut:

PRAGMA pragma_name = nilai;

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;
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 PENUHDayakan 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
Pragma 值描述
0 或 NONE禁用 Auto-vacuum。这是默认模式,意味着数据库文件尺寸大小不会缩小,除非手动使用 VACUUM 命令。
1 或 FULL启用 Auto-vacuum,是全自动的。在该模式下,允许数据库文件随着数据从数据库移除而缩小。
2 或 INCREMENTAL启用 Auto-vacuum,但是必须手动激活。在该模式下,引用数据被维持,免费页面只放在免费列表中。这些页面可在任何时候使用 incremental_vacuum pragma 进行覆盖。
pragma vakum_incremental<🎜>.

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;
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:

PRAGMA case_sensitive_like = [true|false];

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;
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:

Senarai_pangkalan data PRAGMA;

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;
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:

PRAGMA [database.]freelist_count;

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:

PRAGMA [database.]index_info( index_name );

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:

PRAGMA [database.]index_list( table_name );

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;
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;
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:

PRAGMA [database.]page_count;

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;
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:

PRAGMA parser_trace = [true|false];

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;
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;
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;
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;
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;
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;
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;
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;
PRAGMA [database.]user_version = number;

Ini adalah 32-bit yang ditandatangani nilai integer , boleh ditetapkan oleh pembangun untuk tujuan penjejakan versi.

writable_schema Pragma

writable_schema

Pragma mendapat atau menetapkan sama ada jadual sistem boleh diubah suai. Sintaksnya adalah seperti berikut:

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

Jika Pragma ini ditetapkan, jadual bermula dengan sqlite_ dan boleh dibuat dan pengubahsuaian, termasuk jadual sqlite_master. Berhati-hati apabila menggunakan Pragma ini kerana ia boleh membawa kepada kerosakan seluruh pangkalan data.