Entwicklungshandbuch

Local Navigation

Verwenden von Pragmas

Der PRAGMA-Befehl ist eine Funktion von SQLite, die Ihnen ermöglicht, ein Schema abzufragen, das Schema-Cookie und das Benutzer-Cookie abzufragen und zu ändern, die Operation der SQLite-Bibliothek zu ändern und ein Debugging für die Bibliothek durchzuführen. Unterstützte Pragmas sind in der Pragma-Klasse dokumentiert.

Die Datenbank-API unterstützt die folgenden Pragma-Befehle:

Pragma

Beschreibung

collation_list

Ruft eine Liste der Sortierreihenfolgen ab, die für die aktuelle Datenbankverbindung definiert sind.

Um zum Beispiel eine Liste definierter Sortierreihenfolgen abzurufen, führen Sie die SQL-Anweisung "PRAGMA collation_list;" aus, und lesen Sie die resultierenden Zeilen.

compile_options

Ruft die Namen der Kompilierzeitoptionen ab, die beim Erstellen der Datenbank verwendet werden.

Um zum Beispiel die Kompilierungsoptionen für die SQLite-Bibliothek abzurufen, führen Sie die SQL-Anweisung "PRAGMA compile_options;" aus, und lesen Sie die resultierenden Zeilen. Jede Zeile enthält genau eine Option.

database_list

Ruft eine Zeile für jede Datenbank ab, die an die aktuelle Datenbankverbindung angefügt ist.

Um zum Beispiel eine Liste der angefügten Datenbanken für eine Verbindung abzurufen, führen Sie die SQL-Anweisung "PRAGMA database_list;" aus, und lesen Sie die resultierenden Zeilen. Jede Zeile enthält genau einen Datenbanknamen.

foreign_keys

Ruft die Durchsetzung von Fremdschlüssel-Beschränkungen ab oder legt sie fest. Diese Einstellung entspricht der Verwendung der foreign_key_constraints-Option in der DatabaseOptions-Klasse.

Um zum Beispiel die Durchsetzung von Fremdschlüssel-Beschränkungen festzulegen, führen Sie die SQL-Anweisung "PRAGMA foreign_keys;" außerhalb einer Transaktion aus.

freelist_count

Ruft die Anzahl ungenutzter Seiten in der Datenbank ab, die Sie verwenden können, um zu bestimmen, wann der VACUUM-Befehl ausgeführt werden muss.

Um zum Beispiel die Anzahl ungenutzter Seiten in einer Datenbankdatei abzurufen, führen Sie die SQL-Anweisung "PRAGMA freelist_count;" aus, und lesen Sie die resultierende Zeile.

journal_mode

Ruft den Journal-Modus der aktuellen Datenbankverbindung ab oder legt ihn fest. Die verfügbaren Einstellungen bieten unterschiedliche Leistungs- und Datensicherheitsstufen. Alle Optionen außer WAL und OFF verwenden ein Rollback-Journal. Die Optionen sind folgende:

  • DELETE: Löscht das Rollback-Journal am Ende einer Transaktion (Standard).
  • TRUNCATE: Führt für Transaktionen ein Commit durch Verkleinern des Rollback-Journal auf die Länge null aus.
  • PERSIST: Verhindert, dass andere Verbindungen ein Rollback für das Journal ausführen. In diesem Modus kann das Rollback-Journal sehr groß werden, sodass Sie es möglicherweise mittels journal_size_limit überwachen möchten.
  • MEMORY: Speichert das Rollback-Journal im RAM.
  • WAL: Sorgt dafür, dass statt eines Rollback-Journal ein Write-Ahead-Protokoll verwendet wird.
  • OFF: Deaktiviert das Rollback-Journal, wodurch das atomare Commit und die Rollback-Funktionen von SQLite deaktiviert werden.

Um zum Beispiel den Journal-Modus zu prüfen, führen Sie die SQL-Anweisung "PRAGMA journal_mode;" aus, und lesen Sie die resultierende Zeile. Um den Journal-Modus in ein Write-Ahead-Protokoll zu ändern, führen Sie die SQL-Anweisung "PRAGMA journal_mode = WAL;" aus.

journal_size_limit

Ruft die Journal-Größenbeschränkung (in Byte) ab, oder legt sie fest. Dies ist nützlich, wenn journal_mode auf PERSIST gesetzt ist.

Um zum Beispiel die Journal-Größenbeschränkung zu prüfen, führen Sie die SQL-Anweisung "PRAGMA journal_size_limit;" aus, und lesen Sie die resultierende Zeile. Um die Journal-Größenbeschränkung auf 1000 Byte zu setzen, führen Sie die SQL-Anweisung "PRAGMA journal_size_limit = 1000;" aus.

page_count

Ruft die Gesamtanzahl von Seiten in der Datenbank ab.

synchronous

Legt für Ihre Datenbank den synchronen Modus fest. Die Optionen sind FULL (der sicherste, aber langsamste Modus und der Standard), NORMAL und OFF.

Um zum Beispiel den synchronen Modus zu prüfen, führen Sie die SQL-Anweisung "PRAGMA synchronous;" aus, und lesen Sie die resultierende Zeile. Um den synchronen Modus zu ändern OFF, führen Sie die SQL-Anweisung "PRAGMA synchronous = 0;" aus.

user_version

Ruft eine Benutzerversion ab oder legt eine fest. Die Benutzerversion wird nicht von SQLite verwendet. Sie steht Ihnen zur Verfügung. Die Benutzerversion ist eine signierte 32-Bit-Ganzzahl.

Um zum Beispiel die Benutzerversion auf 123 zu setzen, führen Sie die SQL-Anweisung "PRAGMA user_version = 123;" aus. Um die Benutzerversion zu prüfen, führen Sie die SQL-Anweisung "PRAGMA user_version;" aus, und lesen Sie die resultierende Zeile.

Nächstes Thema: Arbeiten mit BLOBs

Waren diese Informationen hilfreich? Senden Sie uns Ihren Kommentar.