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 프라그마

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 프라그마

cache_size 프라그마

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;

format 값이 될 수 있습니다UTF-8, UTF-16leUTF-16be之一。

freelist_count Pragma

freelist_count Pragma는 정수를 반환하며, 여러 데이터베이스 페이지가 현재 어떻게 비어 있고 사용 가능한지를 나타냅니다. 다음은 간단한 문법입니다.

PRAGMA [database.]freelist_count;

format 값이 될 수 있습니다UTF-8, UTF-16le나UTF-16be之一。

index_info Pragma

index_info Pragma는 데이터베이스 인덱스에 대한 정보를 반환합니다. 간단한 문법은 다음과 같습니다

PRAGMA [database.]index_info(index_name);

결과 집합은 인덱스에 포함된 각 열에 대해 한 행을 포함하여 열 순서, 테이블에 포함된 열 인덱스와 열 이름을 제공합니다

index_list Pragma

index_list Pragma는 테이블과 관련된 모든 인덱스를 나열합니다. 간단한 문법은 다음과 같습니다

PRAGMA [database.]index_list(table_name);

결과 집합은 각 인덱스에 대해 한 행을 포함하여 인덱스 시퀀스, 인덱스 이름, 인덱스가 유일한지 여부를 나타냅니다

journal_mode Pragma

journal_mode Pragma는 일지 파일이 어떻게 저장되고 처리되는지 제어하는 일지 모드를 얻거나 설정합니다. 간단한 문법은 다음과 같습니다

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

다음 표는 지원되는 다섯 가지 일지 모드를 나열합니다

순번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 [database.]synchronous;
PRAGMA [database.]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 [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 테이블 포함하여 생성 및 수정할 수 있습니다. 컴파일 지시를 사용할 때 주의하십시오. 이는 데이터베이스가 완전히 손상될 수 있습니다.