SQLite 클래식 튜토리얼login
SQLite 클래식 튜토리얼
작가:php.cn  업데이트 시간:2022-04-13 17:05:02

SQLite 프라그마


SQLite의 PRAGMA 명령은 SQLite 환경 내의 다양한 환경 변수 및 상태 플래그를 제어하는 ​​데 사용할 수 있는 특수 명령입니다. PRAGMA 값은 필요에 따라 읽고 설정할 수 있습니다.

구문

현재 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 can은 다음 중 하나입니다.

Pragma 값 설명
0 또는 없음 자동 진공을 비활성화합니다. 이는 기본 모드로, VACUUM 명령을 수동으로 사용하지 않는 한 데이터베이스 파일 크기가 줄어들지 않음을 의미합니다.
1 또는 FULL완전 자동인 자동 진공을 활성화합니다. 이 모드에서는 데이터베이스에서 데이터가 제거될 때 데이터베이스 파일이 축소될 수 있습니다.
2 또는 INCREMENTAL 자동 진공을 활성화하지만 수동으로 활성화해야 합니다. 이 모드에서는 인용 데이터가 유지되며 무료 페이지는 무료 목록에만 배치됩니다. 이 페이지는
Pragma 值描述
0 或 NONE禁用 Auto-vacuum。这是默认模式,意味着数据库文件尺寸大小不会缩小,除非手动使用 VACUUM 命令。
1 或 FULL启用 Auto-vacuum,是全自动的。在该模式下,允许数据库文件随着数据从数据库移除而缩小。
2 或 INCREMENTAL启用 Auto-vacuum,但是必须手动激活。在该模式下,引用数据被维持,免费页面只放在免费列表中。这些页面可在任何时候使用 incremental_vacuum pragma 进行覆盖。
incremental_vacuum pragma<🎜>를 사용하여 언제든지 덮어쓸 수 있습니다.

cache_size Pragma

cache_size Pragma는 메모리에 있는 페이지 캐시의 최대 크기를 가져오거나 일시적으로 설정합니다. 구문은 다음과 같습니다:

PRAGMA [database.]cache_size;
PRAGMA [database.]cache_size = 페이지;

페이지 값은 캐시의 페이지 수로 표현됩니다. 내장된 페이지 캐시의 기본 크기는 2,000페이지이고 최소 크기는 10페이지입니다.

case_sensitive_like Pragma

case_sensitive_like Pragma는 내장된 LIKE 표현식의 대소문자 구분을 제어합니다. 기본적으로 이 Pragma는 false입니다. 즉, 내장된 LIKE 연산자는 대소문자를 무시합니다. 구문은 다음과 같습니다.

PRAGMA case_sensitive_like = [true|false];

현재 이 Pragma의 현재 상태를 쿼리할 수 있는 방법은 없습니다.

count_changes Pragma

count_changes Pragma는 INSERT, UPDATE 및 DELETE와 같은 데이터 작업 문의 반환 값을 가져오거나 설정합니다. 구문은 다음과 같습니다.

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

기본적으로 이 Pragma는 false이며 다음 문은 아무것도 반환하지 않습니다. true로 설정하면 언급된 각 명령문은 작업의 영향을 받는 행을 나타내는 단일 정수 값으로 구성된 단일 행, 단일 열 테이블을 반환합니다.

database_list Pragma

database_list Pragma는 모든 데이터베이스 연결을 나열하는 데 사용됩니다. 구문은 다음과 같습니다.

PRAGMA Database_list;

이 Pragma는 데이터베이스가 열리거나 연결될 때마다 단일 행과 3개의 열이 있는 테이블을 반환합니다. 데이터베이스의 시퀀스 번호, 이름 및 관련 파일이 제공됩니다.

encoding Pragma

encoding Pragma는 문자열이 인코딩되고 데이터베이스 파일에 저장되는 방식을 제어합니다. 구문은 다음과 같습니다.

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는 테이블과 관련된 모든 인덱스를 나열합니다. 구문은 다음과 같습니다:

PRAGMA [database.]index_list( table_name );

결과 집합에는 지정된 열 시퀀스의 각 인덱스에 대해 하나의 행, 인덱스 이름, 인덱스가 고유한지 여부를 나타내는 플래그가 표시됩니다.

journal_mode Pragma

journal_mode Pragma 로그 파일이 저장되고 처리되는 방법을 제어하는 ​​로그 모드를 가져오거나 설정합니다. 구문은 다음과 같습니다:

PRAGMA 저널_모드;
PRAGMA 저널_모드 = 모드;
PRAGMA 데이터베이스.journal_mode;
PRAGMA 데이터베이스.journal_mode = 모드;

5가지 로그 모드가 지원됩니다:

Pragma 值描述
DELETE默认模式。在该模式下,在事务结束时,日志文件将被删除。
TRUNCATE日志文件被阶段为零字节长度。
PERSIST日志文件被留在原地,但头部被重写,表明日志不再有效。
MEMORY日志记录保留在内存中,而不是磁盘上。
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입니다. 기가비트 페이지, 즉 기본 페이지 크기가 1KB인 경우 데이터베이스에서 늘어나는 1MB입니다.

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 ];

안전 삭제 플래그의 기본값은 일반적으로 꺼져 있지만 SQLITE_SECURE_DELETE 빌드 옵션을 통해 변경할 수 있습니다.

sql_trace Pragma

sql_trace Pragma는 SQL 추적 결과를 화면에 덤프하는 데 사용됩니다. 구문은 다음과 같습니다.

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

SQLite는 SQLITE_DEBUG 지시문을 사용하여 Pragma를 컴파일해야 합니다. 참조될 수 있습니다.

동기식 Pragma

동기식 Pragma SQLite가 물리적 저장소에 데이터를 쓰는 방식을 제어하는 ​​현재 디스크의 동기화 모드를 가져오거나 설정합니다. 구문은 다음과 같습니다.

PRAGMA [database.]synchronous;
PRAGMA [database.]synchronous = mode;

SQLite는 다음 동기화 모드를 지원합니다.

Pragma 值描述
0 或 OFF不进行同步。
1 或 NORMAL在关键的磁盘操作的每个序列后同步。
2 或 FULL在每个关键的磁盘操作后同步。

temp_store Pragma

temp_store Pragma는 임시 데이터베이스 파일에 사용되는 저장 모드를 가져오거나 설정합니다. 구문은 다음과 같습니다.

PRAGMA temp_store;
PRAGMA temp_store = mode;

SQLite는 다음 저장 모드를 지원합니다.

Pragma 值描述
0 或 DEFAULT默认使用编译时的模式。通常是 FILE。
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];

이 Pragma가 설정되면 테이블은 sqlite_로 시작됩니다. sqlite_master 테이블을 포함하여 생성 및 수정이 가능합니다. 전체 데이터베이스가 손상될 수 있으므로 이 Pragma를 사용할 때는 주의하십시오.

PHP 중국어 웹사이트