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

SQLite PRAGMA

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;

以下の場所モードできます-

番号PRAGMA値と説明
1

0またはNONE

Auto-vacuumが無効です。これはデフォルトのモードであり、VACUUMコマンドを使用して手動でクリーンアップしない限り、データベースファイルのサイズは縮小しません。

2

1 または FULL

Autoが有効-vacuumは自動的に行われ、データベースからデータを削除する際に、データベースファイルの縮小を許可します。

3

2 または 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;

このユーティリティは、オープンまたは接続されたデータベースごとに3つの列を持つテーブルを返し、データベースのシーケンス番号、名前、関連するファイルを示します。

encoding Pragma

encoding pragmaはデータベース内にどのようにエンコードされ、ファイルに保存されるコントロール文字列を制御します。以下はシンプルな構文です。

PRAGMA encoding;
PRAGMA encoding = format;

フォーマット値は次の通りですUTF-8, UTF-16leまたはUTF-16beの一つ。

freelist_count Pragma

freelist_count Pragmaは整数を返し、現在どの程度のデータベースページが空きで利用可能であるかを示します。以下はシンプルな構文です。

PRAGMA [database.]freelist_count;

フォーマット値は次の通りですUTF-8, UTF-16leまたはUTF-16beの一つ。

index_info Pragma

index_info Pragmaはデータベースインデックスに関する情報を返します。以下は簡単な文法です

PRAGMA [database.]index_info(index_name);

結果セットはインデックスに含まれる各列ごとに1行を含み、列順序、テーブル内の列インデックスと列名を示します

index_list Pragma

index_list Pragmaはテーブルに関連するすべてのインデックスをリストアップします。以下は簡単な文法です

PRAGMA [database.]index_list(table_name);

結果セットは各インデックスごとに1行を含み、インデックスシーケンス、インデックス名、インデックスがユニークであるかどうかを示します

journal_mode Pragma

journal_mode Pragmaはログファイルの保存と処理方法を制御するログモードを取得または設定します。以下は簡単な文法です

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

以下にサポートされている5つのログモードが示されています

番号PRAGMAの値と説明
1

DELETE

これはデフォルトのモードです。取引が終了すると、ログファイルは削除されます

2

TRUNCATE

ログファイルは0バイトの長さに切り取られます

3

PERSIST

ログファイルはその場所に残りますが、タイトルが覆われ、ログが有効でないことを示します

4

MEMORY

ログ記録はメモリに保存され、ディスク上には保存されません

5

OFF

ログ記録を保持しません

max_page_count PRAGMA

max_page_count PRAGMAはデータベースに対して許可される最大ページ数を取得または設定します。以下は簡単な文法です

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

デフォルト値は1,073,741,823、つまり1GBのページ、これはデフォルトが1 KBページサイズの場合、データベースは成長できます1 TB。

page_count PRAGMA

page_count PRAGMAが返すデータベースの現在のページ数。以下は簡単な文法です-

PRAGMA [database.]page_count;

データベースファイルのサイズはpage_countに設定されるべきです * page_size。

page_size PRAGMA

page_size PRAGMAはデータベースのページサイズを取得または設定します。以下はシンプルな構文です。

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

デフォルトでは、許可されているサイズは512、1024、2048、4096、8192、16384および32768バイト。現在のデータベース上のページサイズを変更する唯一の方法は、ページサイズを設定してすぐにデータベースに対してVACUUMを実行することです。

parser_trace PRAGMA

parser_trace PRAGMAはSQLコマンドの解析中にデバッグ状態をプリントするために使用されます。以下はシンプルな構文です。

PRAGMA parser_trace = [true|false];

デフォルトではfalseに設定されていますが、trueに設定することでSQL解析器はSQLコマンドの解析中にその状態をプリントします。

recursive_triggers PRAGMA

recursive_triggers PRAGMAは递帰的なトリガー機能を取得または設定します。递帰的なトリガーが無効の場合、トリガー操作は他のトリガーをトリガーしません。以下はシンプルな構文です。

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

schema_version PRAGMA

schema_version PRAGMAはデータベースヘッダーに保存されているアーキテクチャバージョン値を取得または設定します。以下はシンプルな構文です。

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

これは32アーキテクチャ変更を追跡するために使用されるシグネイチャドビット整値です。CREATE ...やDROP ...などの変更モードのコマンドを実行するたびに、この値は増加します。

secure_delete PRAGMA

secure_delete PRAGMAはデータベースから内容を削除する方法を制御するために使用されます。以下はシンプルな構文です。

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

安全删除标志的デフォルト値は通常offですが、SQLITE_SECURE_DELETE構築オプションを使用してデフォルト値を変更できます。

sql_trace PRAGMA

sql_trace PRAGMAはSQLトレース結果をスクリーンにダンプします。以下はシンプルな文法です。

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

このコンパイル指示を含めるには、SQLiteをSQLITE_DEBUGコマンドでコンパイルする必要があります。

synchronous PRAGMA

synchronous PRAGMAは現在のディスク同期モードを取得または設定し、SQLiteが物理ストレージにデータを書き込む際の積極的な方法を制御します。以下はシンプルな文法です。

PRAGMA [データベース.]synchronous;
PRAGMA [データベース.]synchronous = mode;

SQLiteは以下の表に示される以下の同期モードをサポートしています。

番号PRAGMAの値と説明
1

0またはOFF

全く同期しません。

2

1 または NORMAL

重要なディスク操作シーケンスの後で同期します。

3

2 または FULL

重要なディスク操作の後で同期します。

temp_store PRAGMA

temp_store PRAGMAは一時的なデータベースファイルが使用するストレージモードを取得または設定します。以下はシンプルな文法です。

PRAGMA temp_store;
PRAGMA temp_store = mode;

SQLiteは以下のストレージモードをサポートしています。

番号PRAGMAの値と説明
1

0またはDEFAULT

コンパイル時にデフォルトの値を使用します。通常はFILEです。

2

1 または FILE

ファイルベースのストレージを使用します。

3

2 または MEMORY

メモリベースのストレージを使用します。

temp_store_directory PRAGMA

temp_store_directory PRAGMAは一時的なデータベースファイルの場所を取得または設定します。以下はシンプルな文法です。

PRAGMA temp_store_directory;
PRAGMA temp_store_directory = 'directory_path';

user_version PRAGMA

user_versionデータベースヘッダーに保存されているユーザー定義のバージョン値を取得または設定するコンパイル指示です。以下はシンプルな文法です。

PRAGMA [データベース.]user_version;
PRAGMA [データベース.]user_version = number;

これは32シグネチャ付きの整数値で、開発者がバージョン追跡のためにこの値を設定できます。

writable_schema PRAGMA

writable_schemaシステムテーブルの修正能力を取得または設定するためのコンパイル指示です。以下はシンプルな文法です。

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

このコンパイル指示が設定されている場合、sqlite_で始まるテーブル(sqlite_masterテーブルを含む)を作成および変更できます。コンパイル指示を使用する際には注意してください。なぜなら、データベースが完全に破損する原因になる可能性があるからです。