SQLiteプラグマ
SQLite の PRAGMA コマンドは、SQLite 環境内のさまざまな環境変数やステータス フラグを制御するために使用できる特別なコマンドです。 PRAGMA 値は、必要に応じて読み取って設定できます。
構文
現在の PRAGMA 値をクエリするには、プラグマの名前を指定するだけです:
PRAGMA の新しい値を設定するには、構文は次のとおりです:
パターンを設定します。名前または同等の整数を指定できますが、戻り値は常に整数になります。
auto_vacuum Pragma
auto_vacuum Pragma 自動バキューム モードを取得または設定します。構文は次のとおりです:
PRAGMA [database.]auto_vacuum = mode;
ここで、modeは次のいずれかになります:
Pragma value | 説明 |
---|---|
0 または NONE | は自動バキュームを無効にします。これはデフォルトのモードであり、VACUUM コマンドを手動で使用しない限り、データベース ファイルのサイズは減少しません。 |
1 または FULL | 完全自動の自動バキュームを有効にします。このモードでは、データベースからデータが削除されるときにデータベース ファイルを縮小できます。 |
2 または INCREMENTAL | は自動バキュームを有効にしますが、手動で有効にする必要があります。このモードでは、引用データは維持され、空きページは空きリストにのみ配置されます。これらのページは、incremental_vacuum プラグマ を使用していつでも上書きできます。 |
cache_size Pragma
cache_size Pragma は、メモリ内のページ キャッシュの最大サイズを取得または一時的に設定できます。構文は次のとおりです:
PRAGMA [database.]cache_size = pages;
pages 値はキャッシュ内のページ数を表します。組み込みのページ キャッシュのデフォルト サイズは 2,000 ページで、最小サイズは 10 ページです。
case_sensitive_like Pragma
case_sensitive_like プラグマは、組み込み LIKE 式の大文字と小文字の区別を制御します。デフォルトでは、このプラグマは false です。これは、組み込み LIKE 演算子が大文字と小文字を無視することを意味します。構文は次のとおりです:
現在、このプラグマの現在のステータスをクエリする方法はありません。
count_changes Pragma
count_changes Pragma は、INSERT、UPDATE、DELETE などのデータ操作ステートメントの戻り値を取得または設定します。構文は次のとおりです:
PRAGMA count_changes = [true|false];
デフォルトでは、このプラグマは false であり、これらのステートメントは何も返しません。 true に設定すると、前述の各ステートメントは、操作の影響を受ける行を表す単一の整数値で構成される単一行、単一列のテーブルを返します。
database_list Pragma
database_list プラグマは、すべてのデータベース接続を一覧表示するために使用されます。構文は次のとおりです:
このプラグマは、データベースが開かれるか接続されるたびに、データベース内のシリアル番号、その名前、および関連ファイルを返します。与えられます。
encoding Pragma
encoding プラグマは、文字列をエンコードしてデータベース ファイルに保存する方法を制御します。構文は次のとおりです:
PRAGMA エンコーディング = フォーマット;
フォーマット値は、UTF-8、UTF-16le、または UTF-16be のいずれかです。
freelist_count Pragma
freelist_count Pragma は、現在空きおよび使用可能としてマークされているデータベース ページの数を表す整数を返します。構文は次のとおりです:
形式の値は、UTF-8、UTF-16le、または UTF-16be のいずれかです。
index_info Pragma
index_info Pragma は、データベースのインデックスに関する情報を返します。構文は次のとおりです:
結果セットには、指定された列シーケンスのインデックス、テーブル内の列インデックス、および列名。
index_list Pragma
index_list プラグマは、テーブルに関連付けられているすべてのインデックスをリストします。構文は次のとおりです:
結果セットには、インデックスごとに 1 行が表示され、列シーケンス、インデックス名、インデックスが一意であるかどうかを示すフラグが示されます。
journal_mode Pragma
journal_mode Pragma ログ ファイルの保存方法と処理方法を制御するログ モードを取得または設定します。構文は次のとおりです::
PRAGMAデータベース.journal_mode;
PRAGMAデータベース.journal_mode =モード;
説明 | |
---|---|
デフォルトモード。このモードでは、ログ ファイルはトランザクションの終了時に削除されます。 | |
ログ ファイルはゼロバイト長にステージングされます。 | |
ログ ファイルはそのまま残りますが、ヘッダーが書き換えられ、ログが有効でなくなったことを示します。 | |
ログレコードはディスクではなくメモリに保存されます。 | |
ログは保存されません。 |
Pragma value | Description |
---|---|
0 または OFF | 同期なし。 |
1 または NORMAL | は、重要なディスク操作の各シーケンス後に同期します。 |
2 または FULL | 重要なディスク操作のたびに同期します。 |
temp_store Pragma
temp_store Pragma 一時データベース ファイルによって使用されるストレージ モードを取得または設定します。構文は次のとおりです:
PRAGMA temp_store = mode;
SQLite は次のストレージ モードをサポートしています:
Pragma value | Description |
---|---|
0 または DEFAULT | コンパイルを使用します-デフォルトでは時間モードです。通常はファイルです。ファイルベースのストレージを使用するには、 |
1 または FILE | を使用します。 |
2 または MEMORY | メモリベースのストレージを使用します。 |
temp_store_directory Pragma
temp_store_directory Pragma 一時データベース ファイルに使用される場所を取得または設定します。構文は次のとおりです:
PRAGMA temp_store_directory = 'directory_path';
user_version Pragma
user_version Pragma は、データベース ヘッダーに格納されているユーザー定義のバージョン値を取得または設定します。構文は次のとおりです:
PRAGMA [database.]user_version =number;
これは、バージョン追跡の目的で開発者が設定できる 32 ビットの符号付き整数値です。
writable_schema Pragma
writable_schema Pragma は、システム テーブルを変更できるかどうかを取得または設定します。構文は次のとおりです:
PRAGMA writable_schema = [true|false];
このプラグマが設定されている場合、テーブルは sqlite_ で始まり、sqlite_master テーブルを含めて作成および変更できます。このプラグマを使用すると、データベース全体が破損する可能性があるので注意してください。