poniedziałek, 24 września 2018

SQLite - polecenie PRAGMA


SQLite - PRAGMA

Polecenie SQLite PRAGMA to specjalna komenda używana do kontrolowania różnych zmiennych środowiskowych i flag stanu w środowisku SQLite. Wartość PRAGMA można odczytać i można ją również ustawić na podstawie wymagań.
Składnia
Aby zapytać o aktualną wartość PRAGMA, podaj nazwę pragmy.
PRAGMA pragma_nazwa;
Aby ustawić nową wartość dla PRAGMA, użyj następującej składni.
PRAGMA pragma_nazwa = wartość;
Ustawionym trybem może być nazwa lub odpowiednik, ale zwracana wartość zawsze będzie liczbą całkowitą.

auto_vacuum Pragma

Auto_vacuum Pragma pobiera lub ustawia tryb auto-vacuum. Poniżej znajduje się prosta składnia.
PRAGMA [bazadanych.]auto_vacuum;
PRAGMA [bazadanych.]auto_vacuum = tryb;
Gdzie tryb może być jednym z poniższych:
L.p.
Pragma Wartość i opis
1
0 lub NONE
Auto-vacuum jest wyłączone. Jest to tryb domyślny, co oznacza, że ​​plik bazy danych nigdy nie zmniejszy rozmiaru, chyba że zostanie ręcznie zmieniony za pomocą polecenia VACUUM.
2
1 lub FULL
Auto-vacuum jest włączona i całkowicie automatyczna, co pozwala zmniejszyć plik bazy danych podczas usuwania danych z bazy danych.
3
2 lub INCREMENTAL
Auto-vacuum jest włączone, ale musi być aktywowane ręcznie. W tym trybie dane referencyjne są zachowywane, ale wolne strony są po prostu umieszczane na wolnej liście. Strony te można odzyskać za każdym razem przy użyciu incremental_vacuum pragma.

cache_size Pragma

Cache_size pragma może dostać lub tymczasowo ustawić maksymalny rozmiar strony w pamięci podręcznej. Poniżej znajduje się prosta składnia.
PRAGMA [bazadanych.]cache_size;
PRAGMA [bazadanych.]cache_size = strona;
Wartość strona reprezentuje liczbę stron w pamięci podręcznej. Wbudowana pamięć podręczna stron ma domyślny rozmiar 2000 stron i minimalny rozmiar 10 stron.

case_sensitive_like Pragma

Próba case_sensitive_like kontroluje rozróżnianie wielkości liter wbudowanego wyrażenia LIKE. Domyślnie ta pragma ma wartość false, co oznacza, że ​​wbudowany operator LIKE ignoruje wielkość liter. Poniżej znajduje się prosta składnia.
PRAGMA case_sensitive_like = [true|false];
Nie ma sposobu, aby zapytać o aktualny stan tej pragmy.

count_changes Pragma

count_changes pragma pobiera lub ustawia wartość zwracaną instrukcji manipulacji danymi, takich jak INSERT, UPDATE i DELETE. Poniżej znajduje się prosta składnia.
PRAGMA count_changes;
PRAGMA count_changes = [true|false];
Domyślnie ta pragma jest fałszywa i te instrukcje nic nie zwracają. Jeśli zostanie ustawiona wartość true, każda z wymienionych instrukcji zwróci tabelę składającą się z jednej kolumny i jednego wiersza składającą się z jednej liczby całkowitej wskazującej wpływ na wiersze w wyniku operacji.

database_list Pragma

Database_list Pragma zostaną wykorzystane do listy w dół wszystkich baz danych w załączeniu. Poniżej znajduje się prosta składnia.
PRAGMA database_list;
Ta pragma zwróci tabelę z trzema kolumnami z jednym wierszem na otwartą lub dołączoną bazę danych, podając numer sekwencji bazy danych, jej nazwę i powiązany plik.

encoding Pragma

Encoding Pragma kontroluje jak są kodowane ciągi tekstowe i przechowywane w pliku bazy danych. Poniżej znajduje się prosta składnia.
PRAGMA encoding;
PRAGMA encoding = format;
Wartość format może być jedną z następujących wartości: UTF-8, UTF-16lelub UTF-16be .

freelist_count Pragma

Pragma freelist_count zwraca jedną liczbę całkowitą wskazującą, ile stron bazy danych jest obecnie oznaczonych jako wolne i dostępne. Poniżej znajduje się prosta składnia.
PRAGMA [database.]freelist_count;

index_info Pragma

Pragma index_info zwraca informacje o indeksie bazy danych. Poniżej znajduje się prosta składnia.
PRAGMA [database.]index_info( index_nazwa );
Zestaw wyników będzie zawierał jeden wiersz dla każdej kolumny zawartej w indeksie, podając sekwencję kolumn, indeks kolumny tabeli wejściowej i kolumny.


index_list Pragma

index_list pragma wyświetla listę wszystkich indeksów powiązanych z tabelą. Poniżej znajduje się prosta składnia.
PRAGMA [database.]index_list( nazwa_tabeli );
Zestaw wyników będzie zawierał jeden wiersz dla każdego indeksu, indeks, nazwę indeksu i flagę wskazującą, czy indeks jest niepowtarzalny, czy nie.

journal_mode Pragma

Journal_mode Pragma pobiera lub ustawia tryb dziennika, który steruje przechowywaniem i przetwarzaniem pliku kroniki. Poniżej znajduje się prosta składnia.
PRAGMA journal_mode;
PRAGMA journal_mode = tryb;
PRAGMA database.journal_mode;
PRAGMA database.journal_mode = tryb;
Istnieje pięć obsługiwanych trybów dziennika, które wymieniono w poniższej tabeli.
L.p.
Pragma Wartość i opis
1
DELETE
To jest tryb domyślny. Tutaj, po zakończeniu transakcji, plik kroniki zostaje usunięty.
2
TRUNCATE
Plik kroniki jest obcięty do długości zero bajtów.
3
PERSIST
Plik kroniki pozostanie na miejscu, ale nagłówek zostanie nadpisany, aby wskazać, że dziennik nie jest już ważny.
4
MEMORY
Rekord dziennika jest przechowywany w pamięci, a nie na dysku.
5
OFF
Brak zapisów w dzienniku.

max_page_count Pragma

Max_page_count Pragma pobiera lub ustawia maksymalną dozwoloną liczbę stron dla bazy danych. Poniżej znajduje się prosta składnia.
PRAGMA [bazadanych.]max_page_count;
PRAGMA [bazadanych.]max_page_count = max_stron;
Domyślną wartością jest 1,073,741,823, co stanowi jedną stronę typu giga, co oznacza, że ​​jeśli domyślny rozmiar strony to 1 KB, to baza danych może wzrosnąć do jednego terabajta.

page_count Pragma

PAGE_COUNT Pragma zwraca aktualną liczbę stron w bazie danych. Poniżej znajduje się prosta składnia:
PRAGMA [bazadanych.]page_count;
Rozmiar pliku bazy danych powinien wynosić page_count * page_size.

page_size Pragma

Pragma page_size pobiera lub ustawia rozmiar stron bazy danych. Poniżej znajduje się prosta składnia.
PRAGMA [bazadanych.]page_size;
PRAGMA [bazadanych.]page_size = bytes;
Domyślnie dozwolone rozmiary to 512, 1024, 2048, 4096, 8192, 16384 i 32768 bajtów. Jedynym sposobem zmiany rozmiaru strony w istniejącej bazie danych jest ustawienie rozmiaru strony, a następnie natychmiast VACUUM bazy danych.

parser_trace Pragma

Polecenie parser_trace steruje drukowaniem stanu debugowania podczas analizowania poleceń SQL. Poniżej znajduje się prosta składnia.
PRAGMA parser_trace = [true|false];
Domyślnie jest ustawiona na wartość false, ale po włączeniu przez ustawienie jej na wartość true, parser SQL wydrukuje swój stan podczas analizowania poleceń SQL.

recursive_triggers Pragma

Polecenie recursive_triggers pragma pobiera lub ustawia funkcję wyzwalacza rekurencyjnego. Jeśli wyzwalacze cykliczne nie są włączone, akcja wyzwalacza nie uruchomi innego wyzwalacza. Poniżej znajduje się prosta składnia.
PRAGMA recursive_triggers;
PRAGMA recursive_triggers = [true|false];

schema_version Pragma

Polecenie schema_version pobiera lub ustawia wartość wersji schematu przechowywaną w nagłówku bazy danych. Poniżej znajduje się prosta składnia.
PRAGMA [database.]schema_version;
PRAGMA [database.]schema_version = number;
Jest to 32-bitowa wartość całkowita ze znakiem, która śledzi zmiany schematu. Ilekroć wykonywana jest komenda zmieniająca schemat (na przykład CREATE ... lub DROP ...), ta wartość jest zwiększana.

secure_delete Pragma

Polecenie secure_delete służy do kontroli sposobu usuwania treści z bazy danych. Poniżej znajduje się prosta składnia.
PRAGMA secure_delete;
PRAGMA secure_delete = [true|false];
PRAGMA database.secure_delete;
PRAGMA database.secure_delete = [true|false];
Domyślna wartość bezpiecznej flagi usuwania jest zwykle wyłączona, ale można to zmienić za pomocą opcji kompilacji SQLITE_SECURE_DELETE.

sql_trace Pragma

Polecenie sql_trace służy do zrzutu wyników śledzenia SQL na ekran. Poniżej znajduje się prosta składnia.
PRAGMA sql_trace;
PRAGMA sql_trace = [true|false];
SQLite musi być skompilowany z dyrektywą SQLITE_DEBUG, aby ta pragma została uwzględniona.
synchronous Pragma
Polecenie synchronous Pragma pobiera lub ustawia bieżący tryb synchronizacji dysku, który kontroluje jak agresywnie SQLite zapisze wszystkie dane wyjściowe do przechowywania fizycznego. Poniżej znajduje się prosta składnia.
PRAGMA [database.]synchronous;
PRAGMA [database.]synchronous = tryb;
SQLite obsługuje następujące tryby synchronizacji przedstawione w tabeli.
L.p.
Pragma Wartość i opis
1
0 lub OFF
Brak synchronizacji
2
1 lub NORMAL
Synchronizacja po każdej sekwencji krytycznych operacji na dysku
3
2 lub FULL
Synchronizacja po każdym działaniu dysku krytycznego

temp_store Pragma

Polecenie temp_store Pragma pobiera lub ustawia tryb pamięci używanej przez tymczasowe pliki baz danych. Poniżej znajduje się prosta składnia.
PRAGMA temp_store;
PRAGMA temp_store = tryb;
SQLite obsługuje następujące tryby przechowywania.
L.p.
Pragma Wartość i opis
1
0 lub DEFAULT
Użyj domyślnego czasu kompilacji. Zwykle FILE.
2
1 lub FILE
Użyj magazynu opartego na plikach.
3
2 lub MEMORY
Użyj pamięci masowej opartej na pamięci.

temp_store_directory Pragma

Polecenie temp_store_directory pobiera lub ustawia lokalizację używaną dla tymczasowych plików baz danych. Poniżej znajduje się prosta składnia.
PRAGMA temp_store_directory;
PRAGMA temp_store_directory = 'directory_path';

user_version Pragma

Polecenie user_version pobiera lub ustawia zdefiniowaną przez użytkownika wartość wersji przechowywaną w nagłówku bazy danych. Poniżej znajduje się prosta składnia.
PRAGMA [database.]user_version;
PRAGMA [database.]user_version = liczba;
Jest to 32-bitowa wartość całkowita ze znakiem, którą programista może ustawić dla celów śledzenia wersji.

writable_schema Pragma

Polecenie writable_schema pobiera lub ustawia możliwość modyfikowania tabel systemowych. Poniżej znajduje się prosta składnia.
PRAGMA writable_schema;
PRAGMA writable_schema = [true|false];
Jeśli ta pragma jest ustawiona, tabele rozpoczynające się od sqlite_ mogą być tworzone i modyfikowane, w tym tabela sqlite_master. Zachowaj ostrożność podczas używania pragmy, ponieważ może to doprowadzić do całkowitego uszkodzenia bazy danych.


Brak komentarzy:

Prześlij komentarz