Latest web development tutorials

SQLite는 PRAGMA

SQLite는그마 명령 특별한 명령 환경 변수 SQLite는 환경 제어 및 상태 플래그의 다양한 이용 될 수있다.PRAGMA 값은 수요에 따라 설정 될 수있는 판독 할 수있다.

문법

PRAGMA의 현재 값을 조회하려면, 단지 당신은 프라그의 이름을 제공해야합니다 :

PRAGMA의 pragma_name;

프라 그마, 다음 구문에 대한 새 값을 설정하려면 :

PRAGMA의 pragma_name = 값;

모드 설정, 그 이름 또는 정수 당량 수 있지만, 복귀 값은 항상 정수 것이다.

auto_vacuum에서 Pragma

auto_vacuum pragma는 가져 오거나 자동 진공 모드를 설정합니다.구문은 다음과 같습니다

PRAGMA [데이터베이스.] Auto_vacuum;
PRAGMA [데이터베이스.] Auto_vacuum = 모드;

하며, 모드는 다음 중 하나 일 수 있습니다

Pragma 值描述
0 或 NONE禁用 Auto-vacuum。这是默认模式,意味着数据库文件尺寸大小不会缩小,除非手动使用 VACUUM 命令。
1 或 FULL启用 Auto-vacuum,是全自动的。在该模式下,允许数据库文件随着数据从数据库移除而缩小。
2 或 INCREMENTAL启用 Auto-vacuum,但是必须手动激活。在该模式下,引用数据被维持,免费页面只放在免费列表中。这些页面可在任何时候使用incremental_vacuum pragma进行覆盖。

cache_size에서 Pragma

cache_size pragma는 받거나 메모리 캐시에 임시 페이지의 최대 크기를 설정할 수있다.구문은 다음과 같습니다

PRAGMA [데이터베이스.] Cache_size;
PRAGMA [. 데이터베이스] cache_size = 페이지;

값은 페이지 캐시의페이지 수를 나타낸다.내장 디폴트 페이지 캐시 사이즈는 최소 사이즈가 10, 000 페이지이다.

case_sensitive_like에서 Pragma

민감한case_sensitive_like pragma는 발현 조절 감도 LIKE 내장.기본적으로 pragma는 내장 LIKE 연산자는 문자의 경우를 무시하는 것을 의미한다 false입니다. 구문은 다음과 같습니다

PRAGMA의 case_sensitive_like = [진실 | 거짓]

프라 그마의 현재 상태를 확인할 수있는 방법이 없습니다.

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

어떻게인코딩에서 Pragma 문자열 인코딩 된 데이터베이스 파일에 저장을 제어 할 수 있습니다.구문은 다음과 같습니다

PRAGMA 인코딩;
PRAGMA 인코딩 = 형식;

형식 값은 UTF-8, UTF-16LE 하나 UTF-16BE가 될 수 있습니다.

freelist_count에서 Pragma

freelist_count pragma는 현재 무료로 사용 가능한 데이터베이스 페이지로 표시 나타내는 정수를 반환합니다.구문은 다음과 같습니다

PRAGMA [데이터베이스.] Freelist_count;

형식 값은 UTF-8, UTF-16LE 하나 UTF-16BE가 될 수 있습니다.

index_info에서 Pragma

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

PRAGMA [데이터베이스.] Index_info (인덱스 _);

각 열에 대해 설정 한 결과는 지정된 인덱스의 순서가 테이블 내의 열 인덱스는, 열 이름 열이 행 표시가 포함되어 있습니다.

index_list에서 Pragma

index_list에서 Pragma 목록 테이블과 관련된 모든 인덱스.구문은 다음과 같습니다

PRAGMA [데이터베이스.] Index_list (테이블 _);

각 인덱스 컬럼에 설정 한 결과는 시퀀스 인덱스 이름을 부여, 인덱스 여부 고유 식별자 표시 줄을 표시합니다.

journal_mode에서 Pragma

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

PRAGMA의 journal_mode;
PRAGMA의 journal_mode = 모드;
PRAGMA의 database.journal_mode;
PRAGMA의 database.journal_mode = 모드;

다음 로그는 5 가지 모드를 지원합니다 :

Pragma 值描述
DELETE默认模式。在该模式下,在事务结束时,日志文件将被删除。
TRUNCATE日志文件被阶段为零字节长度。
PERSIST日志文件被留在原地,但头部被重写,表明日志不再有效。
MEMORY日志记录保留在内存中,而不是磁盘上。
OFF不保留任何日志记录。

max_page_count에서 Pragma

max_page_count pragma는 데이터베이스 가져 허용 된 최대 페이지 수를 설정합니다.구문은 다음과 같습니다

PRAGMA [데이터베이스.] Max_page_count;
PRAGMA [데이터베이스.] Max_page_count = MAX_PAGE;

기본값 1킬로바이트 기본 페이지 크기, 데이터베이스는 메가에서 성장하는 경우, 즉, 기가비트 페이지 인 1073741823이다.

PAGE_COUNT에서 Pragma

PAGE_COUNT pragma는 현재 데이터베이스의 페이지 수를 반환합니다.구문은 다음과 같습니다

PRAGMA [데이터베이스.] PAGE_COUNT;

데이터베이스 파일 크기는 * PAGE_SIZE PAGE_COUNT해야합니다.

PAGE_SIZE에서 Pragma

PAGE_SIZE pragma는 가져 오거나 데이터베이스 페이지의 크기를 설정합니다.구문은 다음과 같습니다

PRAGMA [데이터베이스.] PAGE_SIZE;
PRAGMA [. 데이터베이스] PAGE_SIZE = 바이트;

기본적으로 허용 크기 512,1024,2048,4096,8192,16384,32768 바이트. 기존 데이터베이스 페이지 크기를 변경할 수있는 유일한 방법은 바로 다음의 페이지 사이즈를 설정하여 데이터베이스를 진공한다.

parser_trace에서 Pragma

이 SQL 인쇄 디버그 상태를 제어 명령을 해결parser_trace에서 Pragma으로 다음과 같이 구문은 다음과 같습니다

PRAGMA의 parser_trace = [진실 | 거짓]

기본적으로 false로 설정되어 있지만, 가능하게 그것의 상태를 출력으로 다음 SQL 파서는 SQL 명령을 구문 분석 할 수 true로 설정됩니다.

RECURSIVE_TRIGGERS에서 Pragma

RECURSIVE_TRIGGERS pragma는 가져 재귀 트리거 기능을 설정합니다.재귀 트리거가 활성화되지 않은 경우, 트리거 조치는 다른 트리거를 실행하지 않습니다. 구문은 다음과 같습니다

PRAGMA의 RECURSIVE_TRIGGERS;
PRAGMA의 RECURSIVE_TRIGGERS의 = [TRUE | FALSE];

schema_version에서 Pragma

schema_version pragma는 가져 스키마 버전 값은 데이터베이스 헤더에 저장됩니다.구문은 다음과 같습니다

PRAGMA [데이터베이스.] Schema_version;
PRAGMA schema_version = 번호 [데이터베이스.]

이 구조에 대한 변경을 추적하는 데 사용되는 32 비트 부호있는 정수 값이다. 스키마 변경 명령 ​​(예 : ... CREATE ... 또는 DROP 등),이 값이 증가 할 때마다.

secure_delete에서 Pragma

secure_delete에서 Pragma는 내용이 데이터베이스에서 삭제하는 방법을 제어하는 데 사용됩니다.구문은 다음과 같습니다

PRAGMA의 secure_delete;
PRAGMA secure_delete = [진실 | 거짓]
PRAGMA의 database.secure_delete;
PRAGMA의 database.secure_delete = [진실 | 거짓]

기본 보안 플래그가 정상적으로 닫혀 삭제하지만 변경 SQLITE_SECURE_DELETE 옵션으로 구성 될 수있다.

SQL_TRACE에서 Pragma

화면에 결과를 추적하기 위해 SQL의덤프에서 Pragma를 SQL_TRACE.구문은 다음과 같습니다

PRAGMA의 SQL_TRACE;
PRAGMA의 SQL_TRACE = [진실 | 거짓]

SQLite는은에서 Pragma를 참조 SQLITE_DEBUG 명령으로 컴파일해야합니다.

동기에서 Pragma

동기 pragma는 가져 오거나 현재 디스크 동기 모드, 데이터가 물리적 스토리지에 기록되는 방식 모드 제어 긍정적 인 SQLite는을 설정합니다.구문은 다음과 같습니다

PRAGMA [데이터베이스.] 동기;
PRAGMA [데이터베이스.] 동기 = 모드;

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

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

temp_store에서 Pragma

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

PRAGMA의 temp_store;
PRAGMA의 temp_store = 모드;

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 [데이터베이스.] User_version;
PRAGMA user_version = 번호 [데이터베이스.]

이 버전의 추적을 위해 개발자에 의해 설정 될 수있는 32 비트 정수 값이다.

writable_schema에서 Pragma

에서 Pragma 가져 오거나 시스템 테이블을 수정할 수있는 기능을 설정 writable_schema있습니다. 구문은 다음과 같습니다

PRAGMA의 writable_schema;
PRAGMA의 writable_schema = [진실 | 거짓]

프라 그마는, 테이블 sqlite_하기 시작하면있는 sqlite_master 테이블을 포함하여 작성하고 수정할 수 있습니다. 우리가에서 Pragma주의를 기울를 사용하면 전체 데이터베이스가 손상 될 수 있기 때문이다.