SQLite クラシック チュ...login
SQLite クラシック チュートリアル
著者:php.cn  更新時間:2022-04-13 17:05:02

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は次のいずれかになります:

Pragma value 説明
0 または NONE は自動バキュームを無効にします。これはデフォルトのモードであり、VACUUM コマンドを手動で使用しない限り、データベース ファイルのサイズは減少しません。
1 または FULL 完全自動の自動バキュームを有効にします。このモードでは、データベースからデータが削除されるときにデータベース ファイルを縮小できます。
2 または INCREMENTAL は自動バキュームを有効にしますが、手動で有効にする必要があります。このモードでは、引用データは維持され、空きページは空きリストにのみ配置されます。これらのページは、incremental_vacuum プラグマ を使用していつでも上書きできます。

cache_size Pragma

cache_size Pragma は、メモリ内のページ キャッシュの最大サイズを取得または一時的に設定できます。構文は次のとおりです:

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

pages 値はキャッシュ内のページ数を表します。組み込みのページ キャッシュのデフォルト サイズは 2,000 ページで、最小サイズは 10 ページです。

case_sensitive_like Pragma

case_sensitive_like プラグマは、組み込み LIKE 式の大文字と小文字の区別を制御します。デフォルトでは、このプラグマは 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 エンコーディング = フォーマット;

フォーマット値は、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);

結果セットには、指定された列シーケンスのインデックス、テーブル内の列インデックス、および列名。

index_list Pragma

index_list プラグマは、テーブルに関連付けられているすべてのインデックスをリストします。構文は次のとおりです:

PRAGMA [database.]index_list( table_name );

結果セットには、インデックスごとに 1 行が表示され、列シーケンス、インデックス名、インデックスが一意であるかどうかを示すフラグが示されます。

journal_mode Pragma

journal_mode Pragma ログ ファイルの保存方法と処理方法を制御するログ モードを取得または設定します。構文は次のとおりです::

PRAGMAジャーナル_モード = モード;
PRAGMAデータベース.journal_mode;
PRAGMAデータベース.journal_mode =モード;
ここでは5つのログモードがサポートされています:

プラグマ値説明削除デフォルトモード。このモードでは、ログ ファイルはトランザクションの終了時に削除されます。 TRUNCATEログ ファイルはゼロバイト長にステージングされます。 PERSIST ログ ファイルはそのまま残りますが、ヘッダーが書き換えられ、ログが有効でなくなったことを示します。 メモリログレコードはディスクではなくメモリに保存されます。 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 で、これはギガバイトのページです。つまり、デフォルトのページ サイズが1 KB、次にデータベース A メガバイトのサイズが大きくなります。

page_count Pragma

page_count Pragma は、現在のデータベース内の Web ページの数を返します。構文は次のとおりです:

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 プラグマは、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 プラグマ

secure_delete プラグマは、データベースからコンテンツを削除する方法を制御するために使用されます。構文は次のとおりです:

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

安全な削除フラグのデフォルト値は通常オフですが、これは 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 [database.]synchronous;
PRAGMA [database.]synchronous = mode;

SQLite は次の同期モードをサポートしています:

Pragma value Description
0 または OFF 同期なし。
1 または NORMAL は、重要なディスク操作の各シーケンス後に同期します。
2 または FULL 重要なディスク操作のたびに同期します。

temp_store Pragma

temp_store Pragma 一時データベース ファイルによって使用されるストレージ モードを取得または設定します。構文は次のとおりです:

PRAGMA temp_store;
PRAGMA temp_store = mode;

SQLite は次のストレージ モードをサポートしています:

Pragma valueDescription
0 または DEFAULT コンパイルを使用します-デフォルトでは時間モードです。通常はファイルです。ファイルベースのストレージを使用するには、
1 または FILE を使用します。
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 は、データベース ヘッダーに格納されているユーザー定義のバージョン値を取得または設定します。構文は次のとおりです:

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

これは、バージョン追跡の目的で開発者が設定できる 32 ビットの符号付き整数値です。

writable_schema Pragma

writable_schema Pragma は、システム テーブルを変更できるかどうかを取得または設定します。構文は次のとおりです:

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

このプラグマが設定されている場合、テーブルは sqlite_ で始まり、sqlite_master テーブルを含めて作成および変更できます。このプラグマを使用すると、データベース全体が破損する可能性があるので注意してください。

PHP中国語ウェブサイト